$ TASK_IMPORT_VERSION=before TEST_RECEIPT=before-results.json python3 test_task_import.py
test_alphanumeric_id (__main__.ImportAcceptance.test_alphanumeric_id) ... FAIL
test_distinct_numeric_looking_ids (__main__.ImportAcceptance.test_distinct_numeric_looking_ids) ... FAIL
test_empty_id (__main__.ImportAcceptance.test_empty_id) ... FAIL
test_leading_zero (__main__.ImportAcceptance.test_leading_zero) ... FAIL
test_missing_header (__main__.ImportAcceptance.test_missing_header) ... ok
test_quoted_unicode_title (__main__.ImportAcceptance.test_quoted_unicode_title) ... FAIL
test_real_duplicate (__main__.ImportAcceptance.test_real_duplicate) ... ok
test_trim_outer_whitespace (__main__.ImportAcceptance.test_trim_outer_whitespace) ... FAIL

======================================================================
FAIL: test_alphanumeric_id (__main__.ImportAcceptance.test_alphanumeric_id)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_task_import.py", line 37, in check
    self.assertNotIn('actual_error', observation)
AssertionError: 'actual_error' unexpectedly found in {'case_id': 'alphanumeric_id', 'expected': [{'task_id': 'AG-001', 'title': 'Agent task'}], 'expected_error': None, 'actual_error': "invalid literal for int() with base 10: 'AG-001'", 'actual_error_type': 'ValueError'}

======================================================================
FAIL: test_distinct_numeric_looking_ids (__main__.ImportAcceptance.test_distinct_numeric_looking_ids)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_task_import.py", line 37, in check
    self.assertNotIn('actual_error', observation)
AssertionError: 'actual_error' unexpectedly found in {'case_id': 'distinct_numeric_looking_ids', 'expected': [{'task_id': '0007', 'title': 'First'}, {'task_id': '7', 'title': 'Second'}], 'expected_error': None, 'actual_error': 'duplicate task_id: 7', 'actual_error_type': 'ValueError'}

======================================================================
FAIL: test_empty_id (__main__.ImportAcceptance.test_empty_id)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_task_import.py", line 35, in check
    self.assertIn(case['expected_error'], observation.get('actual_error', ''))
AssertionError: 'task_id must not be empty' not found in "invalid literal for int() with base 10: '   '"

======================================================================
FAIL: test_leading_zero (__main__.ImportAcceptance.test_leading_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_task_import.py", line 38, in check
    self.assertEqual(observation.get('actual'), case['expected'])
AssertionError: Lists differ: [{'task_id': 7, 'title': 'Sample task'}] != [{'task_id': '0007', 'title': 'Sample task'}]

First differing element 0:
{'task_id': 7, 'title': 'Sample task'}
{'task_id': '0007', 'title': 'Sample task'}

- [{'task_id': 7, 'title': 'Sample task'}]
+ [{'task_id': '0007', 'title': 'Sample task'}]
?              ++++ +


======================================================================
FAIL: test_quoted_unicode_title (__main__.ImportAcceptance.test_quoted_unicode_title)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_task_import.py", line 38, in check
    self.assertEqual(observation.get('actual'), case['expected'])
AssertionError: Lists differ: [{'task_id': 9, 'title': 'Task, 中文'}] != [{'task_id': '0009', 'title': 'Task, 中文'}]

First differing element 0:
{'task_id': 9, 'title': 'Task, 中文'}
{'task_id': '0009', 'title': 'Task, 中文'}

- [{'task_id': 9, 'title': 'Task, 中文'}]
+ [{'task_id': '0009', 'title': 'Task, 中文'}]
?              ++++ +


======================================================================
FAIL: test_trim_outer_whitespace (__main__.ImportAcceptance.test_trim_outer_whitespace)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_task_import.py", line 38, in check
    self.assertEqual(observation.get('actual'), case['expected'])
AssertionError: Lists differ: [{'task_id': 8, 'title': 'Keep inner  spaces'}] != [{'task_id': '0008', 'title': 'Keep inner  spaces'}]

First differing element 0:
{'task_id': 8, 'title': 'Keep inner  spaces'}
{'task_id': '0008', 'title': 'Keep inner  spaces'}

- [{'task_id': 8, 'title': 'Keep inner  spaces'}]
+ [{'task_id': '0008', 'title': 'Keep inner  spaces'}]
?              ++++ +


----------------------------------------------------------------------
Ran 8 tests in 0.001s

FAILED (failures=6)

exit_code=1
