Skip to content

Commit 2e957f4

Browse files
committed
Backport CI and test modernization
1 parent 2554f51 commit 2e957f4

File tree

57 files changed

+13521
-1980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+13521
-1980
lines changed

.github/workflows/test.yml

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,47 +45,49 @@ jobs:
4545
NODE_ENV: test
4646

4747
steps:
48-
- uses: actions/checkout@v2
48+
- uses: actions/checkout@v3
4949

5050
- name: Set up Python ${{ matrix.python-version }}
51-
uses: actions/setup-python@v2
51+
uses: actions/setup-python@v4
5252
with:
5353
python-version: ${{ matrix.python-version }}
5454

5555
- name: Setup chromedriver
56-
uses: nanasess/setup-chromedriver@v1.0.5
56+
# uses: nanasess/setup-chromedriver@v2.2.2
57+
uses: nanasess/setup-chromedriver@42cc2998329f041de87dc3cfa33a930eacd57eaa
5758

5859
- name: Install tox
5960
run: |
6061
python3 -m pip install tox tox-gh-actions
6162
6263
- name: Cache instrumented static files
6364
id: cache-test-dist
64-
uses: actions/cache@v2
65+
uses: actions/cache@v3
6566
with:
6667
path: nested_admin/tests/static
67-
key: test-dist-${{ hashFiles('package-lock.json', '.github/workflows/test.yml', 'webpack.config.js', 'package.json', '.*rc*', 'frontend/**') }}
68+
key: test-dist-${{ hashFiles('package-lock.json', '.github/workflows/test.yml', 'webpack.config.js', 'package.json', '.*rc*', 'nested_admin/static/nested_admin/src/**/*.*s') }}
6869

6970
- name: Cache node_modules
7071
id: cache-node_modules
71-
uses: actions/cache@v2
72+
uses: actions/cache@v3
7273
with:
7374
path: node_modules
7475
key: node_modules-${{ hashFiles('package-lock.json') }}
7576

76-
- name: Setup nodejs 12
77-
if: steps.cache-test-dist.outputs.cache-hit != 'true' || steps.cache-node_modules.outputs.cache-hit != 'true'
78-
uses: actions/setup-node@v2
77+
- name: Setup nodejs
78+
if: steps.cache-test-dist.outputs.cache-hit != 'true'
79+
uses: actions/setup-node@v3
7980
with:
80-
node-version: '12'
81+
node-version: '16'
82+
cache: 'npm'
8183

8284
- name: npm ci
83-
if: steps.cache-test-dist.outputs.cache-hit != 'true' || steps.cache-node_modules.outputs.cache-hit != 'true'
85+
if: steps.cache-test-dist.outputs.cache-hit != 'true' && steps.cache-node_modules.outputs.cache-hit != 'true'
8486
run: |
8587
npm ci || npm ci || npm ci
8688
8789
- name: Build instrumented static files
88-
if: steps.cache-test-dist.outputs.cache-hit != 'true' || steps.cache-node_modules.outputs.cache-hit != 'true'
90+
if: steps.cache-test-dist.outputs.cache-hit != 'true'
8991
run: |
9092
npm run build
9193
@@ -98,7 +100,7 @@ jobs:
98100

99101
- name: Upload junit xml
100102
if: always()
101-
uses: actions/upload-artifact@v2
103+
uses: actions/upload-artifact@v3
102104
with:
103105
name: junit-reports
104106
path: reports/*.xml
@@ -121,15 +123,14 @@ jobs:
121123
runs-on: ubuntu-latest
122124
name: "Report Test Results"
123125
steps:
124-
- uses: actions/download-artifact@v2
126+
- uses: actions/download-artifact@v3
125127
with:
126128
name: junit-reports
127129

128130
- name: Publish tests report
129-
uses: mikepenz/action-junit-report@5703ba1461f35871cde0208140d737d3e1eef38f
131+
uses: mikepenz/action-junit-report@1a91e26932fb7ba410a31fab1f09266a96d29971
130132
with:
131133
report_paths: ./*.xml
132-
github_token: ${{ secrets.GITHUB_TOKEN }}
133134
require_tests: true
134135
fail_on_failure: true
135136
check_name: Test Report

nested_admin/tests/admin_widgets/admin.py

Lines changed: 89 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,116 @@
1-
from django.conf import settings
21
from django.contrib import admin
32
from nested_admin import NestedStackedInline, NestedTabularInline, NestedModelAdmin
43

54
from .models import (
6-
WidgetsRoot, WidgetsM2M, WidgetsRelated1,
7-
WidgetsRelated2, WidgetsA, WidgetsB,
8-
WidgetsC0, WidgetsC1, WidgetsM2MTwo,
9-
WidgetMediaOrderRoot, WidgetMediaOrderA, WidgetMediaOrderB,
10-
WidgetMediaOrderC0, WidgetMediaOrderC1,
11-
WidgetMediaOrderRootWithDateWidget)
5+
WidgetsRoot,
6+
WidgetsM2M,
7+
WidgetsRelated1,
8+
WidgetsRelated2,
9+
WidgetsA,
10+
WidgetsB,
11+
WidgetsC0,
12+
WidgetsC1,
13+
WidgetsM2MTwo,
14+
WidgetMediaOrderRoot,
15+
WidgetMediaOrderA,
16+
WidgetMediaOrderB,
17+
WidgetMediaOrderC0,
18+
WidgetMediaOrderC1,
19+
WidgetMediaOrderRootWithDateWidget,
20+
)
1221

1322

1423
class WidgetsC0Inline(NestedStackedInline):
1524
model = WidgetsC0
16-
prepopulated_fields = {'slug': ('name', )}
17-
filter_horizontal = ['m2m']
25+
prepopulated_fields = {"slug": ("name",)}
26+
filter_horizontal = ["m2m"]
1827
sortable_field_name = "position"
1928
extra = 0
20-
inline_classes = ("grp-collapse", "grp-open",)
21-
raw_id_fields = ['fk2', 'fk4', 'm2m_two', 'm2m_three']
29+
inline_classes = (
30+
"grp-collapse",
31+
"grp-open",
32+
)
33+
raw_id_fields = ["fk2", "fk4", "m2m_two", "m2m_three"]
2234
autocomplete_lookup_fields = {
23-
'fk': ['fk2'],
24-
'm2m': ['m2m_three'],
25-
'generic': [['relation_type', 'relation_id']],
35+
"fk": ["fk2"],
36+
"m2m": ["m2m_three"],
37+
"generic": [["relation_type", "relation_id"]],
2638
}
27-
autocomplete_fields = ['fk3']
39+
autocomplete_fields = ["fk3"]
2840
related_lookup_fields = {
29-
'fk': ['fk4'],
30-
'm2m': ['m2m_two'],
31-
'generic': [['content_type', 'object_id']],
41+
"fk": ["fk4"],
42+
"m2m": ["m2m_two"],
43+
"generic": [["content_type", "object_id"]],
3244
}
3345

3446

3547
class WidgetsC1Inline(NestedTabularInline):
3648
model = WidgetsC1
37-
prepopulated_fields = {'slug': ('name', )}
38-
filter_horizontal = ['m2m']
49+
prepopulated_fields = {"slug": ("name",)}
50+
filter_horizontal = ["m2m"]
3951
sortable_field_name = "position"
4052
extra = 0
41-
inline_classes = ("grp-collapse", "grp-open",)
42-
raw_id_fields = ['fk2', 'fk4', 'm2m_two']
43-
autocomplete_lookup_fields = {'fk': ['fk2']}
44-
autocomplete_fields = ['fk3']
53+
inline_classes = (
54+
"grp-collapse",
55+
"grp-open",
56+
)
57+
raw_id_fields = ["fk2", "fk4", "m2m_two"]
58+
autocomplete_lookup_fields = {"fk": ["fk2"]}
59+
autocomplete_fields = ["fk3"]
4560
related_lookup_fields = {
46-
'fk': ['fk4'],
47-
'm2m': ['m2m_two'],
48-
'generic': [['content_type', 'object_id']],
61+
"fk": ["fk4"],
62+
"m2m": ["m2m_two"],
63+
"generic": [["content_type", "object_id"]],
4964
}
5065

5166

5267
class WidgetsBInline(NestedStackedInline):
5368
model = WidgetsB
5469
inlines = [WidgetsC0Inline, WidgetsC1Inline]
55-
prepopulated_fields = {'slug': ('name', )}
56-
filter_horizontal = ['m2m']
70+
prepopulated_fields = {"slug": ("name",)}
71+
filter_horizontal = ["m2m"]
5772
sortable_field_name = "position"
5873
extra = 1
59-
inline_classes = ("grp-collapse", "grp-open",)
60-
raw_id_fields = ['fk2', 'fk4', 'm2m_two', 'm2m_three']
74+
inline_classes = (
75+
"grp-collapse",
76+
"grp-open",
77+
)
78+
raw_id_fields = ["fk2", "fk4", "m2m_two", "m2m_three"]
6179
autocomplete_lookup_fields = {
62-
'fk': ['fk2'],
63-
'm2m': ['m2m_three'],
64-
'generic': [['relation_type', 'relation_id']],
80+
"fk": ["fk2"],
81+
"m2m": ["m2m_three"],
82+
"generic": [["relation_type", "relation_id"]],
6583
}
66-
autocomplete_fields = ['fk3']
84+
autocomplete_fields = ["fk3"]
6785
related_lookup_fields = {
68-
'fk': ['fk4'],
69-
'm2m': ['m2m_two'],
70-
'generic': [['content_type', 'object_id']],
86+
"fk": ["fk4"],
87+
"m2m": ["m2m_two"],
88+
"generic": [["content_type", "object_id"]],
7189
}
7290

7391

7492
class WidgetsAInline(NestedStackedInline):
7593
model = WidgetsA
7694
inlines = [WidgetsBInline]
77-
prepopulated_fields = {'slug': ('name', )}
78-
filter_horizontal = ['m2m']
95+
prepopulated_fields = {"slug": ("name",)}
96+
filter_horizontal = ["m2m"]
7997
sortable_field_name = "position"
8098
extra = 1
81-
inline_classes = ("grp-collapse", "grp-open",)
82-
raw_id_fields = ['fk2', 'fk4', 'm2m_two', 'm2m_three']
99+
inline_classes = (
100+
"grp-collapse",
101+
"grp-open",
102+
)
103+
raw_id_fields = ["fk2", "fk4", "m2m_two", "m2m_three"]
83104
autocomplete_lookup_fields = {
84-
'fk': ['fk2'],
85-
'm2m': ['m2m_three'],
86-
'generic': [['relation_type', 'relation_id']],
105+
"fk": ["fk2"],
106+
"m2m": ["m2m_three"],
107+
"generic": [["relation_type", "relation_id"]],
87108
}
88-
autocomplete_fields = ['fk3']
109+
autocomplete_fields = ["fk3"]
89110
related_lookup_fields = {
90-
'fk': ['fk4'],
91-
'm2m': ['m2m_two'],
92-
'generic': [['content_type', 'object_id']],
111+
"fk": ["fk4"],
112+
"m2m": ["m2m_two"],
113+
"generic": [["content_type", "object_id"]],
93114
}
94115

95116

@@ -105,8 +126,8 @@ class WidgetsRootAdmin(NestedModelAdmin):
105126

106127
@admin.register(WidgetsRelated2)
107128
class WidgetsRelated2Admin(NestedModelAdmin):
108-
ordering = ['-date_created']
109-
search_fields = ['name']
129+
ordering = ["-date_created"]
130+
search_fields = ["name"]
110131

111132

112133
class WidgetMediaOrderC0Inline(NestedStackedInline):
@@ -117,29 +138,38 @@ class WidgetMediaOrderC0Inline(NestedStackedInline):
117138

118139
class WidgetMediaOrderC1Inline(NestedTabularInline):
119140
model = WidgetMediaOrderC1
120-
prepopulated_fields = {'slug': ('name', )}
121-
filter_horizontal = ['m2m']
141+
prepopulated_fields = {"slug": ("name",)}
142+
filter_horizontal = ["m2m"]
122143
extra = 0
123-
inline_classes = ("grp-collapse", "grp-open",)
124-
raw_id_fields = ['fk2']
125-
autocomplete_lookup_fields = {'fk': ['fk2']}
126-
autocomplete_fields = ['fk3']
144+
inline_classes = (
145+
"grp-collapse",
146+
"grp-open",
147+
)
148+
raw_id_fields = ["fk2"]
149+
autocomplete_lookup_fields = {"fk": ["fk2"]}
150+
autocomplete_fields = ["fk3"]
127151

128152

129153
class WidgetMediaOrderBInline(NestedStackedInline):
130154
model = WidgetMediaOrderB
131155
inlines = [WidgetMediaOrderC0Inline, WidgetMediaOrderC1Inline]
132156
sortable_field_name = "position"
133157
extra = 1
134-
inline_classes = ("grp-collapse", "grp-open",)
158+
inline_classes = (
159+
"grp-collapse",
160+
"grp-open",
161+
)
135162

136163

137164
class WidgetMediaOrderAInline(NestedStackedInline):
138165
model = WidgetMediaOrderA
139166
inlines = [WidgetMediaOrderBInline]
140167
sortable_field_name = "position"
141168
extra = 1
142-
inline_classes = ("grp-collapse", "grp-open",)
169+
inline_classes = (
170+
"grp-collapse",
171+
"grp-open",
172+
)
143173

144174

145175
@admin.register(WidgetMediaOrderRoot)

0 commit comments

Comments
 (0)