-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpytest_results_after_dict.txt
More file actions
466 lines (385 loc) · 25.7 KB
/
Copy pathpytest_results_after_dict.txt
File metadata and controls
466 lines (385 loc) · 25.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
============================= test session starts =============================
platform win32 -- Python 3.13.5, pytest-8.3.4, pluggy-1.5.0
rootdir: E:\code.projects\astrology
configfile: pytest.ini
testpaths: src/tests
plugins: Faker-37.11.0, asyncio-1.2.0, cov-7.0.0, anyio-4.12.1, hydra-core-1.3.2, langsmith-0.6.6, mock-3.15.1
asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collected 75 items
src\tests\test_advanced_mechanics.py ..... [ 6%]
src\tests\test_advanced_pillars.py .... [ 12%]
src\tests\test_api_integration.py ...F [ 17%]
src\tests\test_audit.py F. [ 20%]
src\tests\test_calculator.py F.FFF.. [ 29%]
src\tests\test_commercial_roadmap.py ... [ 33%]
src\tests\test_db_auth.py F [ 34%]
src\tests\test_lot_library.py ... [ 38%]
src\tests\test_manual_options.py F [ 40%]
src\tests\test_medical.py ... [ 44%]
src\tests\test_models.py ... [ 48%]
src\tests\test_monetization.py .FF [ 52%]
src\tests\test_mundane_pillars.py ..... [ 58%]
src\tests\test_notifications.py . [ 60%]
src\tests\test_oracle_refactor.py .. [ 62%]
src\tests\test_pillar6_solar_return.py . [ 64%]
src\tests\test_pillar7_world_firdaria.py . [ 65%]
src\tests\test_planetary_hours.py ........... [ 80%]
src\tests\test_primary_directions.py ... [ 84%]
src\tests\test_purchase_flow.py F [ 85%]
src\tests\test_synastry.py . [ 86%]
src\tests\test_traditional_pillars.py FFFFF. [ 94%]
src\tests\test_vitality.py ... [ 98%]
src\tests\test_zr.py . [100%]
================================== FAILURES ===================================
_____________________________ test_token_creation _____________________________
def test_token_creation():
> token = create_access_token("test_hash", "free", data={"city": "London"})
src\tests\test_api_integration.py:49:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chart_hash = 'test_hash', tier = 'free', expires_days = 30
data = {'city': 'London'}
def create_access_token(chart_hash: str, tier: str, expires_days: int = 30, data: dict = None) -> str:
payload = {
'chart_hash': chart_hash,
'tier': tier,
> 'exp': datetime.utcnow() + timedelta(days=expires_days)
}
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\api\v1\auth.py:12: DeprecationWarning
_____________________ test_auditor_generate_full_nativity _____________________
def test_auditor_generate_full_nativity():
"""
Test that Auditor.generate_full_nativity runs successfully and returns the
bifurcated structure (technical_data, human_translation) expected by the CLI and API.
"""
date_str = "1990-05-15"
time_str = "14:30"
city = "New York"
state = "NY"
name = "Test Native"
# Assume standard house system (W) and tropical zodiac
result = Auditor.generate_full_nativity(
date_str=date_str,
time_str=time_str,
city=city,
state=state,
name=name,
house_system="W",
zodiac_system="tropical"
)
# Make sure no fatal errors occurred
> assert "error" not in result, f"generate_full_nativity returned an error: {result.get('error')}"
E AssertionError: generate_full_nativity returned an error: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
E assert 'error' not in {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
src\tests\test_audit.py:28: AssertionError
____________________________ test_get_coordinates _____________________________
mock_geocoder = <MagicMock name='geocode' id='1177872168480'>
def test_get_coordinates(mock_geocoder):
> lat, lon = get_coordinates(MOCK_CITY, MOCK_STATE)
src\tests\test_calculator.py:32:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src\engine\calculator\geo.py:222: in get_coordinates
_cache_set(query_norm, lat, lon)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
query_norm = 'los angeles, ca', lat = 34.0522, lon = -118.2437
def _cache_set(query_norm: str, lat: float, lon: float) -> None:
cache = _load_geocode_cache()
k = _cache_key(query_norm)
> cache[k] = {"created": datetime.utcnow().replace(microsecond=0).isoformat(), "lat": float(lat), "lon": float(lon)}
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\engine\calculator\geo.py:99: DeprecationWarning
_________________________ test_get_local_datetime_now _________________________
mock_geocoder = <MagicMock name='geocode' id='1177228812912'>
mock_timezone = <MagicMock name='tf.timezone_at' id='1177234746608'>
def test_get_local_datetime_now(mock_geocoder, mock_timezone):
# Mock datetime.now to return a fixed time?
# Hard to mock datetime.now() directly on the class without external libs like freezegun.
# For now, just check it returns a datetime with correct tzinfo.
> dt = get_local_datetime_now(MOCK_CITY, MOCK_STATE)
src\tests\test_calculator.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src\engine\calculator\geo.py:315: in get_local_datetime_now
lat, lon = get_coordinates(city, state)
src\engine\calculator\geo.py:222: in get_coordinates
_cache_set(query_norm, lat, lon)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
query_norm = 'los angeles, ca', lat = 34.0522, lon = -118.2437
def _cache_set(query_norm: str, lat: float, lon: float) -> None:
cache = _load_geocode_cache()
k = _cache_key(query_norm)
> cache[k] = {"created": datetime.utcnow().replace(microsecond=0).isoformat(), "lat": float(lat), "lon": float(lon)}
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\engine\calculator\geo.py:99: DeprecationWarning
____________________ test_calculate_chart_data_integration ____________________
mock_geocoder = <MagicMock name='geocode' id='1177228811568'>
mock_timezone = <MagicMock name='tf.timezone_at' id='1177234747952'>
def test_calculate_chart_data_integration(mock_geocoder, mock_timezone):
# This tests the high-level function
result = calculate_chart_data("2023-01-01", "12:00", MOCK_CITY, MOCK_STATE)
> assert "planets" in result
E AssertionError: assert 'planets' in {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
src\tests\test_calculator.py:54: AssertionError
__________________ test_chart_calculator_class_compatibility __________________
mock_geocoder = <MagicMock name='geocode' id='1177234748624'>
mock_timezone = <MagicMock name='tf.timezone_at' id='1177234749632'>
def test_chart_calculator_class_compatibility(mock_geocoder, mock_timezone):
# Test the Class wrapper for backward compatibility
calc = ChartCalculator()
dt = datetime(2023, 1, 1, 12, 0)
> chart = calc.calculate_chart(dt, MOCK_CITY, MOCK_STATE)
src\tests\test_calculator.py:70:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src\engine\calculator\main.py:56: in calculate_chart
lat, lon = get_coordinates(city, state)
src\engine\calculator\geo.py:222: in get_coordinates
_cache_set(query_norm, lat, lon)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
query_norm = 'los angeles, ca', lat = 34.0522, lon = -118.2437
def _cache_set(query_norm: str, lat: float, lon: float) -> None:
cache = _load_geocode_cache()
k = _cache_key(query_norm)
> cache[k] = {"created": datetime.utcnow().replace(microsecond=0).isoformat(), "lat": float(lat), "lon": float(lon)}
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\engine\calculator\geo.py:99: DeprecationWarning
_______________________________ test_auth_flow ________________________________
def test_auth_flow():
# Use a fresh DB for test (users.db is created in cwd by default)
# in source code location e:\code.projects\astrology
manager = get_user_manager()
email = "test@example.com"
password = "securePassword123"
# 1. Create
print("Creating user...")
> res = manager.create_user(email, password, "Test User")
src\tests\test_db_auth.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src\engine\user_auth.py:68: in create_user
if not self._check_rate_limit(f"create:{email}", limit=3, window=3600):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <src.engine.user_auth.UserManager object at 0x0000011218304590>
key = 'create:test@example.com', limit = 3, window = 3600
def _check_rate_limit(self, key: str, limit: int = 5, window: int = 60) -> bool:
"""
Check if action is allowed for key.
limit: max attempts
window: seconds
Returns True if allowed, False if blocked.
"""
> now = datetime.utcnow()
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\engine\user_auth.py:39: DeprecationWarning
---------------------------- Captured stdout call -----------------------------
Creating user...
________________________________ test_options _________________________________
async def test_options():
print("--- Testing Node Type Option ---")
# 1. Mean Node (Default)
data_mean = calculate_chart_data(
date_str="2023-01-01", time_str="12:00", city="London", node_type="mean"
)
> mean_node_lon = data_mean["planets"]["North_Node"]["longitude"]
E KeyError: 'planets'
src\tests\test_manual_options.py:13: KeyError
---------------------------- Captured stdout call -----------------------------
--- Testing Node Type Option ---
__________________________ test_restore_session_flow __________________________
def test_restore_session_flow():
# 1. Create a dummy token with chart data
chart_data = {"date": "2023-01-01", "city": "London"}
> token = create_access_token(
chart_hash="dummy",
tier="scholar",
data={"user_id": 123, "chart_input": chart_data}
)
src\tests\test_monetization.py:21:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chart_hash = 'dummy', tier = 'scholar', expires_days = 30
data = {'chart_input': {'city': 'London', 'date': '2023-01-01'}, 'user_id': 123}
def create_access_token(chart_hash: str, tier: str, expires_days: int = 30, data: dict = None) -> str:
payload = {
'chart_hash': chart_hash,
'tier': tier,
> 'exp': datetime.utcnow() + timedelta(days=expires_days)
}
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\api\v1\auth.py:12: DeprecationWarning
________________________ test_restore_session_no_data _________________________
def test_restore_session_no_data():
> token = create_access_token(
chart_hash="dummy",
tier="free",
data={"user_id": 123} # No chart_input
)
src\tests\test_monetization.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chart_hash = 'dummy', tier = 'free', expires_days = 30, data = {'user_id': 123}
def create_access_token(chart_hash: str, tier: str, expires_days: int = 30, data: dict = None) -> str:
payload = {
'chart_hash': chart_hash,
'tier': tier,
> 'exp': datetime.utcnow() + timedelta(days=expires_days)
}
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
src\api\v1\auth.py:12: DeprecationWarning
_________________________ test_onetime_purchase_flow __________________________
cls = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0x0000011218C18C20>
when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: Callable[[], TResult],
when: Literal["collect", "setup", "call", "teardown"],
reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,
) -> CallInfo[TResult]:
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:type func: Callable[[], _pytest.runner.TResult]
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: TResult | None = func()
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\runner.py:242: in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
C:\ProgramData\anaconda3\Lib\site-packages\pluggy\_hooks.py:513: in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
C:\ProgramData\anaconda3\Lib\site-packages\pluggy\_manager.py:120: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\threadexception.py:92: in pytest_runtest_call
yield from thread_exception_runtest_hook()
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\threadexception.py:68: in thread_exception_runtest_hook
yield
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\unraisableexception.py:95: in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\unraisableexception.py:70: in unraisable_exception_runtest_hook
yield
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\logging.py:846: in pytest_runtest_call
yield from self._runtest_for(item, "call")
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\logging.py:829: in _runtest_for
yield
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\capture.py:880: in pytest_runtest_call
return (yield)
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\skipping.py:257: in pytest_runtest_call
return (yield)
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\runner.py:174: in pytest_runtest_call
item.runtest()
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\python.py:1627: in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
C:\ProgramData\anaconda3\Lib\site-packages\pluggy\_hooks.py:513: in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
C:\ProgramData\anaconda3\Lib\site-packages\pluggy\_manager.py:120: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pyfuncitem = <Function test_onetime_purchase_flow>
@hookimpl(trylast=True)
def pytest_pyfunc_call(pyfuncitem: Function) -> object | None:
testfunction = pyfuncitem.obj
if is_async_function(testfunction):
async_warn_and_skip(pyfuncitem.nodeid)
funcargs = pyfuncitem.funcargs
testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames}
result = testfunction(**testargs)
if hasattr(result, "__await__") or hasattr(result, "__aiter__"):
async_warn_and_skip(pyfuncitem.nodeid)
elif result is not None:
> warnings.warn(
PytestReturnNotNoneWarning(
f"Expected None, but {pyfuncitem.nodeid} returned {result!r}, which will be an error in a "
"future version of pytest. Did you mean to use `assert` instead of `return`?"
)
)
E pytest.PytestReturnNotNoneWarning: Expected None, but src/tests/test_purchase_flow.py::test_onetime_purchase_flow returned 'https://checkout.stripe.com/c/pay/cs_live_b1ErnZLhUli9tSGweaI2pcFg9UAxw12yNnFFFPl9T0iKYOymsGzJ2ZDH2d#fidnandhYHdWcXxpYCc%2FJ2FgY2RwaXEnKSdkdWxOYHwnPyd1blppbHNgWjA0VzJkUXBGPUdPd2xxdHN3UjNyPV9dfFZJZzNidkJxSXdDUUROVEZ8RHVwRnxrVnZoNzxwTE5PQ0IxQTxOXG1oNX1nMmdtTm5HTG43UH13dkBhfWluNzAxNTV8bH9AS2JhMicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl', which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`?
C:\ProgramData\anaconda3\Lib\site-packages\_pytest\python.py:163: PytestReturnNotNoneWarning
---------------------------- Captured stdout call -----------------------------
Using existing test user: test_customer_automated@example.com (ID: PcwLLMuwAUjedaPAikNWrg)
2026-03-21 22:29:53,926 - INFO - [_util] - message='Request to Stripe api' method=get url=https://api.stripe.com/v1/prices/price_1Sw53FC8BJritqvrkgAS5xJD
2026-03-21 22:29:54,080 - INFO - [_util] - message='Stripe API response' path=https://api.stripe.com/v1/prices/price_1Sw53FC8BJritqvrkgAS5xJD response_code=200
2026-03-21 22:29:54,082 - INFO - [_util] - message='Request to Stripe api' method=post url=https://api.stripe.com/v1/checkout/sessions
2026-03-21 22:29:54,425 - INFO - [_util] - message='Stripe API response' path=https://api.stripe.com/v1/checkout/sessions response_code=200
Created Checkout Session ID: cs_live_b1ErnZLhUli9tSGweaI2pcFg9UAxw12yNnFFFPl9T0iKYOymsGzJ2ZDH2d
Checkout URL: https://checkout.stripe.com/c/pay/cs_live_b1ErnZLhUli9tSGweaI2pcFg9UAxw12yNnFFFPl9T0iKYOymsGzJ2ZDH2d#fidnandhYHdWcXxpYCc%2FJ2FgY2RwaXEnKSdkdWxOYHwnPyd1blppbHNgWjA0VzJkUXBGPUdPd2xxdHN3UjNyPV9dfFZJZzNidkJxSXdDUUROVEZ8RHVwRnxrVnZoNzxwTE5PQ0IxQTxOXG1oNX1nMmdtTm5HTG43UH13dkBhfWluNzAxNTV8bH9AS2JhMicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
------------------------------ Captured log call ------------------------------
INFO stripe:_util.py:127 message='Request to Stripe api' method=get url=https://api.stripe.com/v1/prices/price_1Sw53FC8BJritqvrkgAS5xJD
INFO stripe:_util.py:127 message='Stripe API response' path=https://api.stripe.com/v1/prices/price_1Sw53FC8BJritqvrkgAS5xJD response_code=200
INFO stripe:_util.py:127 message='Request to Stripe api' method=post url=https://api.stripe.com/v1/checkout/sessions
INFO stripe:_util.py:127 message='Stripe API response' path=https://api.stripe.com/v1/checkout/sessions response_code=200
___________________________ test_alcabitius_houses ____________________________
test_case_1996 = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
def test_alcabitius_houses(test_case_1996):
"""Verify Alcabitius houses are calculated and match expected structure."""
houses = test_case_1996.get("houses")
> assert houses is not None
E assert None is not None
src\tests\test_traditional_pillars.py:25: AssertionError
_________________________ test_planetary_phasis_logic _________________________
test_case_1996 = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
def test_planetary_phasis_logic(test_case_1996):
"""Verify Phasis engine correctly identifies Mercury's state."""
planets = test_case_1996.get("planets")
> mercury = planets.get("Mercury")
E AttributeError: 'NoneType' object has no attribute 'get'
src\tests\test_traditional_pillars.py:33: AttributeError
____________________________ test_solar_proximity _____________________________
test_case_1996 = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
def test_solar_proximity(test_case_1996):
"""Verify Sun and Moon proximity (Moon is often combust)."""
> sun_lon = test_case_1996["planets"]["Sun"]["longitude"]
E KeyError: 'planets'
src\tests\test_traditional_pillars.py:55: KeyError
_______________________ test_decennial_apheta_selection _______________________
test_case_1996 = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
def test_decennial_apheta_selection(test_case_1996):
"""Verify Decennial Apheta selection for the 1996 chart."""
> chart = Auditor._rebuild_chart_model(test_case_1996)
src\tests\test_traditional_pillars.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
raw_data = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
@staticmethod
def _rebuild_chart_model(raw_data: Dict) -> Chart:
planets = []
> for name, p_data in raw_data["planets"].items():
E KeyError: 'planets'
src\engine\forensic_engine.py:938: KeyError
___________________________ test_decennial_sequence ___________________________
test_case_1996 = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
def test_decennial_sequence(test_case_1996):
"""Verify the 129-month cycle durations."""
> chart = Auditor._rebuild_chart_model(test_case_1996)
src\tests\test_traditional_pillars.py:73:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
raw_data = {'error': 'datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'}
@staticmethod
def _rebuild_chart_model(raw_data: Dict) -> Chart:
planets = []
> for name, p_data in raw_data["planets"].items():
E KeyError: 'planets'
src\engine\forensic_engine.py:938: KeyError
=========================== short test summary info ===========================
FAILED src/tests/test_api_integration.py::test_token_creation - DeprecationWa...
FAILED src/tests/test_audit.py::test_auditor_generate_full_nativity - Asserti...
FAILED src/tests/test_calculator.py::test_get_coordinates - DeprecationWarnin...
FAILED src/tests/test_calculator.py::test_get_local_datetime_now - Deprecatio...
FAILED src/tests/test_calculator.py::test_calculate_chart_data_integration - ...
FAILED src/tests/test_calculator.py::test_chart_calculator_class_compatibility
FAILED src/tests/test_db_auth.py::test_auth_flow - DeprecationWarning: dateti...
FAILED src/tests/test_manual_options.py::test_options - KeyError: 'planets'
FAILED src/tests/test_monetization.py::test_restore_session_flow - Deprecatio...
FAILED src/tests/test_monetization.py::test_restore_session_no_data - Depreca...
FAILED src/tests/test_purchase_flow.py::test_onetime_purchase_flow - pytest.P...
FAILED src/tests/test_traditional_pillars.py::test_alcabitius_houses - assert...
FAILED src/tests/test_traditional_pillars.py::test_planetary_phasis_logic - A...
FAILED src/tests/test_traditional_pillars.py::test_solar_proximity - KeyError...
FAILED src/tests/test_traditional_pillars.py::test_decennial_apheta_selection
FAILED src/tests/test_traditional_pillars.py::test_decennial_sequence - KeyEr...
======================== 16 failed, 59 passed in 7.92s ========================