fixtureqa 0.8.0__tar.gz → 0.8.2__tar.gz
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.
- {fixtureqa-0.8.0/fixtureqa.egg-info → fixtureqa-0.8.2}/PKG-INFO +2 -2
- {fixtureqa-0.8.0 → fixtureqa-0.8.2/fixtureqa.egg-info}/PKG-INFO +2 -2
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixtureqa.egg-info/SOURCES.txt +1 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixtureqa.egg-info/requires.txt +1 -1
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/pyproject.toml +4 -2
- fixtureqa-0.8.2/tests/test_timezone_data.py +39 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/LICENSE +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/README.md +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/__init__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/__main__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/__init__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/app.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/connection_manager.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/deps.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/__init__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/admin.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/auth.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/branding.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/custom_tags.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/fix_spec.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/messages.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/perf.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/scenarios.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/sessions.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/setup.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/spec_overlay.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/templates.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/routers/ws.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/api/schemas.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/config/__init__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/__init__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/atomic_io.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/auth.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/config_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/custom_tag_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/db_migrations.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/events.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/fix_application.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/fix_builder.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/fix_parser.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/fix_spec_parser.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/fix_tags.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/fix_time.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/housekeeping.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/inbound.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/json_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/latency_csv_writer.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/message_log.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/message_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/models.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_charts.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_engine.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_models.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_payload.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_stats.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/perf_writer.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/scenario_runner.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/scenario_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/session.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/session_manager.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/spec_overlay_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/template_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/user_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/value_gen.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/core/venue_responses.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/fix_specs/FIX42.xml +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/fix_specs/FIX44.xml +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/server.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/assets/ag-grid-_QKprVdm.js +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/assets/index-B-hpSZWZ.css +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/assets/index-Cu3H3T9B.js +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/assets/index-CyNOPa0n.js +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/assets/react-vendor-2eF0YfZT.js +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/favicon.svg +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/static/index.html +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixture/ui/__init__.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixtureqa.egg-info/dependency_links.txt +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixtureqa.egg-info/entry_points.txt +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/fixtureqa.egg-info/top_level.txt +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/setup.cfg +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_atomic_io.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_auth.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_config_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_connection_manager.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_db_migrations.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_fix_builder.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_health.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_inbound.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_inbound_validation.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_message_store.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_non_stop_session.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_perf_api.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_perf_engine.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_perf_models.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_perf_payload.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_perf_rehydrate.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_scenarios.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_session_auto_response.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_session_lifecycle.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_session_manager_concurrency.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_sessions.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_templates.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_value_gen.py +0 -0
- {fixtureqa-0.8.0 → fixtureqa-0.8.2}/tests/test_ws.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fixtureqa
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
4
4
|
Summary: FIXture — FIX Protocol Testing Tool
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
License-File: LICENSE
|
|
7
|
-
Requires-Dist: fixcore-engine==0.7.
|
|
7
|
+
Requires-Dist: fixcore-engine==0.7.1
|
|
8
8
|
Requires-Dist: fastapi>=0.111.0
|
|
9
9
|
Requires-Dist: uvicorn[standard]>=0.29.0
|
|
10
10
|
Requires-Dist: websockets>=12.0
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fixtureqa
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
4
4
|
Summary: FIXture — FIX Protocol Testing Tool
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
License-File: LICENSE
|
|
7
|
-
Requires-Dist: fixcore-engine==0.7.
|
|
7
|
+
Requires-Dist: fixcore-engine==0.7.1
|
|
8
8
|
Requires-Dist: fastapi>=0.111.0
|
|
9
9
|
Requires-Dist: uvicorn[standard]>=0.29.0
|
|
10
10
|
Requires-Dist: websockets>=12.0
|
|
@@ -4,11 +4,13 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fixtureqa"
|
|
7
|
-
version = "0.8.
|
|
7
|
+
version = "0.8.2"
|
|
8
8
|
description = "FIXture — FIX Protocol Testing Tool"
|
|
9
9
|
requires-python = ">=3.10"
|
|
10
10
|
dependencies = [
|
|
11
|
-
|
|
11
|
+
# 0.7.1 owns the tzdata dependency (zoneinfo for the TimeZone schedule key),
|
|
12
|
+
# so it's no longer declared here — fixcore is the only code using ZoneInfo.
|
|
13
|
+
"fixcore-engine==0.7.1",
|
|
12
14
|
"fastapi>=0.111.0",
|
|
13
15
|
"uvicorn[standard]>=0.29.0",
|
|
14
16
|
"websockets>=12.0",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""The `tzdata` package must satisfy stdlib zoneinfo with no system tz database.
|
|
2
|
+
|
|
3
|
+
fixcore 0.7.0 builds a SessionSchedule for every session (fixture always emits
|
|
4
|
+
StartTime/EndTime) and resolves the zone via zoneinfo.ZoneInfo — including the
|
|
5
|
+
default "UTC". Slim/alpine base images ship no /usr/share/zoneinfo, so the
|
|
6
|
+
bundled `tzdata` dependency is the only source of zones there. These tests
|
|
7
|
+
simulate that environment (empty TZPATH) and assert lookups still resolve.
|
|
8
|
+
"""
|
|
9
|
+
import importlib.util
|
|
10
|
+
|
|
11
|
+
import zoneinfo
|
|
12
|
+
from zoneinfo import ZoneInfo
|
|
13
|
+
|
|
14
|
+
import pytest
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def test_tzdata_is_installed():
|
|
18
|
+
assert importlib.util.find_spec("tzdata") is not None, (
|
|
19
|
+
"tzdata must be a runtime dependency so zoneinfo works on slim images"
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@pytest.fixture
|
|
24
|
+
def no_system_tzpath():
|
|
25
|
+
"""Drop system tz dirs so zoneinfo can only fall back to the tzdata package."""
|
|
26
|
+
saved = list(zoneinfo.TZPATH)
|
|
27
|
+
zoneinfo.reset_tzpath([])
|
|
28
|
+
try:
|
|
29
|
+
ZoneInfo.clear_cache()
|
|
30
|
+
yield
|
|
31
|
+
finally:
|
|
32
|
+
zoneinfo.reset_tzpath(saved)
|
|
33
|
+
ZoneInfo.clear_cache()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@pytest.mark.parametrize("name", ["UTC", "Europe/London", "America/New_York", "Asia/Tokyo"])
|
|
37
|
+
def test_zone_resolves_without_system_db(no_system_tzpath, name):
|
|
38
|
+
# Would raise ZoneInfoNotFoundError if tzdata weren't supplying the data.
|
|
39
|
+
assert ZoneInfo(name) is not None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|