fixtureqa 0.8.0__tar.gz → 0.8.1__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.
Files changed (105) hide show
  1. {fixtureqa-0.8.0/fixtureqa.egg-info → fixtureqa-0.8.1}/PKG-INFO +2 -1
  2. {fixtureqa-0.8.0 → fixtureqa-0.8.1/fixtureqa.egg-info}/PKG-INFO +2 -1
  3. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixtureqa.egg-info/SOURCES.txt +1 -0
  4. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixtureqa.egg-info/requires.txt +1 -0
  5. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/pyproject.toml +6 -1
  6. fixtureqa-0.8.1/tests/test_timezone_data.py +39 -0
  7. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/LICENSE +0 -0
  8. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/README.md +0 -0
  9. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/__init__.py +0 -0
  10. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/__main__.py +0 -0
  11. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/__init__.py +0 -0
  12. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/app.py +0 -0
  13. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/connection_manager.py +0 -0
  14. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/deps.py +0 -0
  15. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/__init__.py +0 -0
  16. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/admin.py +0 -0
  17. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/auth.py +0 -0
  18. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/branding.py +0 -0
  19. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/custom_tags.py +0 -0
  20. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/fix_spec.py +0 -0
  21. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/messages.py +0 -0
  22. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/perf.py +0 -0
  23. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/scenarios.py +0 -0
  24. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/sessions.py +0 -0
  25. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/setup.py +0 -0
  26. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/spec_overlay.py +0 -0
  27. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/templates.py +0 -0
  28. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/routers/ws.py +0 -0
  29. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/api/schemas.py +0 -0
  30. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/config/__init__.py +0 -0
  31. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/__init__.py +0 -0
  32. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/atomic_io.py +0 -0
  33. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/auth.py +0 -0
  34. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/config_store.py +0 -0
  35. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/custom_tag_store.py +0 -0
  36. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/db_migrations.py +0 -0
  37. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/events.py +0 -0
  38. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/fix_application.py +0 -0
  39. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/fix_builder.py +0 -0
  40. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/fix_parser.py +0 -0
  41. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/fix_spec_parser.py +0 -0
  42. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/fix_tags.py +0 -0
  43. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/fix_time.py +0 -0
  44. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/housekeeping.py +0 -0
  45. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/inbound.py +0 -0
  46. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/json_store.py +0 -0
  47. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/latency_csv_writer.py +0 -0
  48. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/message_log.py +0 -0
  49. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/message_store.py +0 -0
  50. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/models.py +0 -0
  51. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_charts.py +0 -0
  52. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_engine.py +0 -0
  53. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_models.py +0 -0
  54. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_payload.py +0 -0
  55. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_stats.py +0 -0
  56. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_store.py +0 -0
  57. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/perf_writer.py +0 -0
  58. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/scenario_runner.py +0 -0
  59. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/scenario_store.py +0 -0
  60. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/session.py +0 -0
  61. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/session_manager.py +0 -0
  62. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/spec_overlay_store.py +0 -0
  63. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/template_store.py +0 -0
  64. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/user_store.py +0 -0
  65. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/value_gen.py +0 -0
  66. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/core/venue_responses.py +0 -0
  67. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/fix_specs/FIX42.xml +0 -0
  68. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/fix_specs/FIX44.xml +0 -0
  69. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/server.py +0 -0
  70. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/assets/ag-grid-_QKprVdm.js +0 -0
  71. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/assets/index-B-hpSZWZ.css +0 -0
  72. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/assets/index-Cu3H3T9B.js +0 -0
  73. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/assets/index-CyNOPa0n.js +0 -0
  74. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/assets/react-vendor-2eF0YfZT.js +0 -0
  75. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/favicon.svg +0 -0
  76. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/static/index.html +0 -0
  77. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixture/ui/__init__.py +0 -0
  78. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixtureqa.egg-info/dependency_links.txt +0 -0
  79. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixtureqa.egg-info/entry_points.txt +0 -0
  80. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/fixtureqa.egg-info/top_level.txt +0 -0
  81. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/setup.cfg +0 -0
  82. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_atomic_io.py +0 -0
  83. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_auth.py +0 -0
  84. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_config_store.py +0 -0
  85. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_connection_manager.py +0 -0
  86. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_db_migrations.py +0 -0
  87. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_fix_builder.py +0 -0
  88. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_health.py +0 -0
  89. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_inbound.py +0 -0
  90. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_inbound_validation.py +0 -0
  91. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_message_store.py +0 -0
  92. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_non_stop_session.py +0 -0
  93. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_perf_api.py +0 -0
  94. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_perf_engine.py +0 -0
  95. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_perf_models.py +0 -0
  96. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_perf_payload.py +0 -0
  97. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_perf_rehydrate.py +0 -0
  98. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_scenarios.py +0 -0
  99. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_session_auto_response.py +0 -0
  100. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_session_lifecycle.py +0 -0
  101. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_session_manager_concurrency.py +0 -0
  102. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_sessions.py +0 -0
  103. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_templates.py +0 -0
  104. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_value_gen.py +0 -0
  105. {fixtureqa-0.8.0 → fixtureqa-0.8.1}/tests/test_ws.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fixtureqa
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: FIXture — FIX Protocol Testing Tool
5
5
  Requires-Python: >=3.10
6
6
  License-File: LICENSE
@@ -11,6 +11,7 @@ Requires-Dist: websockets>=12.0
11
11
  Requires-Dist: python-jose[cryptography]>=3.3.0
12
12
  Requires-Dist: passlib[bcrypt]>=1.7.4
13
13
  Requires-Dist: matplotlib>=3.7
14
+ Requires-Dist: tzdata>=2024.1
14
15
  Provides-Extra: dev
15
16
  Requires-Dist: pytest>=8.0; extra == "dev"
16
17
  Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fixtureqa
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: FIXture — FIX Protocol Testing Tool
5
5
  Requires-Python: >=3.10
6
6
  License-File: LICENSE
@@ -11,6 +11,7 @@ Requires-Dist: websockets>=12.0
11
11
  Requires-Dist: python-jose[cryptography]>=3.3.0
12
12
  Requires-Dist: passlib[bcrypt]>=1.7.4
13
13
  Requires-Dist: matplotlib>=3.7
14
+ Requires-Dist: tzdata>=2024.1
14
15
  Provides-Extra: dev
15
16
  Requires-Dist: pytest>=8.0; extra == "dev"
16
17
  Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
@@ -98,5 +98,6 @@ tests/test_session_lifecycle.py
98
98
  tests/test_session_manager_concurrency.py
99
99
  tests/test_sessions.py
100
100
  tests/test_templates.py
101
+ tests/test_timezone_data.py
101
102
  tests/test_value_gen.py
102
103
  tests/test_ws.py
@@ -5,6 +5,7 @@ websockets>=12.0
5
5
  python-jose[cryptography]>=3.3.0
6
6
  passlib[bcrypt]>=1.7.4
7
7
  matplotlib>=3.7
8
+ tzdata>=2024.1
8
9
 
9
10
  [dev]
10
11
  pytest>=8.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fixtureqa"
7
- version = "0.8.0"
7
+ version = "0.8.1"
8
8
  description = "FIXture — FIX Protocol Testing Tool"
9
9
  requires-python = ">=3.10"
10
10
  dependencies = [
@@ -15,6 +15,11 @@ dependencies = [
15
15
  "python-jose[cryptography]>=3.3.0",
16
16
  "passlib[bcrypt]>=1.7.4",
17
17
  "matplotlib>=3.7",
18
+ # IANA tz database for stdlib zoneinfo. fixcore 0.7.0 builds a session
19
+ # schedule (and resolves SessionConfig.time_zone via ZoneInfo) for every
20
+ # session, but slim/alpine base images ship no system /usr/share/zoneinfo,
21
+ # so without this any zone lookup — including the default UTC — fails.
22
+ "tzdata>=2024.1",
18
23
  ]
19
24
 
20
25
  [project.optional-dependencies]
@@ -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