arthexis 0.1.16__py3-none-any.whl → 0.1.28__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arthexis might be problematic. Click here for more details.
- {arthexis-0.1.16.dist-info → arthexis-0.1.28.dist-info}/METADATA +95 -41
- arthexis-0.1.28.dist-info/RECORD +112 -0
- config/asgi.py +1 -15
- config/middleware.py +47 -1
- config/settings.py +21 -30
- config/settings_helpers.py +176 -1
- config/urls.py +69 -1
- core/admin.py +805 -473
- core/apps.py +6 -8
- core/auto_upgrade.py +19 -4
- core/backends.py +13 -3
- core/celery_utils.py +73 -0
- core/changelog.py +66 -5
- core/environment.py +4 -5
- core/models.py +1825 -218
- core/notifications.py +1 -1
- core/reference_utils.py +10 -11
- core/release.py +55 -7
- core/sigil_builder.py +2 -2
- core/sigil_resolver.py +1 -66
- core/system.py +285 -4
- core/tasks.py +439 -138
- core/test_system_info.py +43 -5
- core/tests.py +516 -18
- core/user_data.py +94 -21
- core/views.py +348 -186
- nodes/admin.py +904 -67
- nodes/apps.py +12 -1
- nodes/feature_checks.py +30 -0
- nodes/models.py +800 -127
- nodes/rfid_sync.py +1 -1
- nodes/tasks.py +98 -3
- nodes/tests.py +1381 -152
- nodes/urls.py +15 -1
- nodes/utils.py +51 -3
- nodes/views.py +1382 -152
- ocpp/admin.py +1970 -152
- ocpp/consumers.py +839 -34
- ocpp/models.py +968 -17
- ocpp/network.py +398 -0
- ocpp/store.py +411 -43
- ocpp/tasks.py +261 -3
- ocpp/test_export_import.py +1 -0
- ocpp/test_rfid.py +194 -6
- ocpp/tests.py +1918 -87
- ocpp/transactions_io.py +9 -1
- ocpp/urls.py +8 -3
- ocpp/views.py +700 -53
- pages/admin.py +262 -30
- pages/apps.py +35 -0
- pages/context_processors.py +28 -21
- pages/defaults.py +1 -1
- pages/forms.py +31 -8
- pages/middleware.py +6 -2
- pages/models.py +86 -2
- pages/module_defaults.py +5 -5
- pages/site_config.py +137 -0
- pages/tests.py +1050 -126
- pages/urls.py +14 -2
- pages/utils.py +70 -0
- pages/views.py +622 -56
- arthexis-0.1.16.dist-info/RECORD +0 -111
- core/workgroup_urls.py +0 -17
- core/workgroup_views.py +0 -94
- {arthexis-0.1.16.dist-info → arthexis-0.1.28.dist-info}/WHEEL +0 -0
- {arthexis-0.1.16.dist-info → arthexis-0.1.28.dist-info}/licenses/LICENSE +0 -0
- {arthexis-0.1.16.dist-info → arthexis-0.1.28.dist-info}/top_level.txt +0 -0
core/test_system_info.py
CHANGED
|
@@ -64,13 +64,28 @@ class SystemInfoModeTests(SimpleTestCase):
|
|
|
64
64
|
try:
|
|
65
65
|
info = _gather_info()
|
|
66
66
|
self.assertEqual(info["mode"], "public")
|
|
67
|
-
self.assertEqual(info["port"],
|
|
67
|
+
self.assertEqual(info["port"], 8888)
|
|
68
68
|
finally:
|
|
69
69
|
lock_file.unlink()
|
|
70
70
|
if not any(lock_dir.iterdir()):
|
|
71
71
|
lock_dir.rmdir()
|
|
72
72
|
|
|
73
73
|
|
|
74
|
+
class SystemInfoPortLockTests(SimpleTestCase):
|
|
75
|
+
def test_uses_backend_port_lock_when_present(self):
|
|
76
|
+
lock_dir = Path(settings.BASE_DIR) / "locks"
|
|
77
|
+
lock_dir.mkdir(exist_ok=True)
|
|
78
|
+
port_file = lock_dir / "backend_port.lck"
|
|
79
|
+
port_file.write_text("9010", encoding="utf-8")
|
|
80
|
+
try:
|
|
81
|
+
info = _gather_info()
|
|
82
|
+
self.assertEqual(info["port"], 9010)
|
|
83
|
+
finally:
|
|
84
|
+
port_file.unlink()
|
|
85
|
+
if not any(lock_dir.iterdir()):
|
|
86
|
+
lock_dir.rmdir()
|
|
87
|
+
|
|
88
|
+
|
|
74
89
|
class SystemInfoRevisionTests(SimpleTestCase):
|
|
75
90
|
@patch("core.system.revision.get_revision", return_value="abcdef1234567890")
|
|
76
91
|
def test_includes_full_revision(self, mock_revision):
|
|
@@ -146,21 +161,44 @@ class SystemInfoRunserverDetectionTests(SimpleTestCase):
|
|
|
146
161
|
mock_run.return_value = CompletedProcess(
|
|
147
162
|
args=["pgrep"],
|
|
148
163
|
returncode=0,
|
|
149
|
-
stdout="123 python manage.py runserver 0.0.0.0:
|
|
164
|
+
stdout="123 python manage.py runserver 0.0.0.0:8888 --noreload\n",
|
|
150
165
|
)
|
|
151
166
|
|
|
152
167
|
info = _gather_info()
|
|
153
168
|
|
|
154
169
|
self.assertTrue(info["running"])
|
|
155
|
-
self.assertEqual(info["port"],
|
|
170
|
+
self.assertEqual(info["port"], 8888)
|
|
156
171
|
|
|
157
|
-
@patch("core.system._probe_ports", return_value=(True,
|
|
172
|
+
@patch("core.system._probe_ports", return_value=(True, 8888))
|
|
158
173
|
@patch("core.system.subprocess.run", side_effect=FileNotFoundError)
|
|
159
174
|
def test_falls_back_to_port_probe_when_pgrep_missing(self, mock_run, mock_probe):
|
|
160
175
|
info = _gather_info()
|
|
161
176
|
|
|
162
177
|
self.assertTrue(info["running"])
|
|
163
|
-
self.assertEqual(info["port"],
|
|
178
|
+
self.assertEqual(info["port"], 8888)
|
|
179
|
+
|
|
180
|
+
@patch("core.system._probe_ports", return_value=(False, None))
|
|
181
|
+
@patch("core.system.subprocess.run")
|
|
182
|
+
def test_runserver_fallbacks_to_backend_port_lock(self, mock_run, mock_probe):
|
|
183
|
+
lock_dir = Path(settings.BASE_DIR) / "locks"
|
|
184
|
+
lock_dir.mkdir(exist_ok=True)
|
|
185
|
+
port_file = lock_dir / "backend_port.lck"
|
|
186
|
+
port_file.write_text("9042", encoding="utf-8")
|
|
187
|
+
mock_run.return_value = CompletedProcess(
|
|
188
|
+
args=["pgrep"],
|
|
189
|
+
returncode=0,
|
|
190
|
+
stdout="123 python manage.py runserver --noreload\n",
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
try:
|
|
194
|
+
info = _gather_info()
|
|
195
|
+
finally:
|
|
196
|
+
port_file.unlink()
|
|
197
|
+
if not any(lock_dir.iterdir()):
|
|
198
|
+
lock_dir.rmdir()
|
|
199
|
+
|
|
200
|
+
self.assertTrue(info["running"])
|
|
201
|
+
self.assertEqual(info["port"], 9042)
|
|
164
202
|
|
|
165
203
|
|
|
166
204
|
class SystemSigilValueTests(SimpleTestCase):
|