test_bad_rows_do_not_crash_context_or_skip_later_valid_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_bad_rows_do_not_crash_context_or_skip_later_valid_messages) ... FAIL test_bad_rows_do_not_crash_context_or_skip_later_valid_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_bad_rows_do_not_crash_context_or_skip_later_valid_messages) ... ERROR test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) ... test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='nan') ... FAIL test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='inf') ... FAIL test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='NaN') ... FAIL test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='Infinity') ... FAIL test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) ... ERROR test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) ... test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) (value='1e+300') ... FAIL test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) (value='1e300') ... FAIL test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) (value='100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') ... FAIL test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) ... ERROR test_seconds_and_milliseconds_preserve_chronology (test_database_timestamp_audit.DatabaseTimestampAudit.test_seconds_and_milliseconds_preserve_chronology) ... ERROR ====================================================================== ERROR: test_bad_rows_do_not_crash_context_or_skip_later_valid_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_bad_rows_do_not_crash_context_or_skip_later_valid_messages) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 632, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmpjp05e9ft\\WXWork\\100\\Data\\message.db' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 947, in cleanup self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 929, in _rmtree _shutil.rmtree(name, onerror=onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 787, in rmtree return _rmtree_unsafe(path, onerror) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 634, in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 893, in onerror _os.unlink(path) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmpjp05e9ft\\WXWork\\100\\Data\\message.db' ====================================================================== ERROR: test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 632, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmpm3ebpmfo\\WXWork\\100\\Data\\message.db' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 947, in cleanup self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 929, in _rmtree _shutil.rmtree(name, onerror=onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 787, in rmtree return _rmtree_unsafe(path, onerror) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 634, in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 893, in onerror _os.unlink(path) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmpm3ebpmfo\\WXWork\\100\\Data\\message.db' ====================================================================== ERROR: test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 632, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmpoj6np3q_\\WXWork\\100\\Data\\message.db' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 947, in cleanup self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 929, in _rmtree _shutil.rmtree(name, onerror=onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 787, in rmtree return _rmtree_unsafe(path, onerror) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 634, in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 893, in onerror _os.unlink(path) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmpoj6np3q_\\WXWork\\100\\Data\\message.db' ====================================================================== ERROR: test_seconds_and_milliseconds_preserve_chronology (test_database_timestamp_audit.DatabaseTimestampAudit.test_seconds_and_milliseconds_preserve_chronology) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 632, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmptu0z3x3g\\WXWork\\100\\Data\\message.db' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 947, in cleanup self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 929, in _rmtree _shutil.rmtree(name, onerror=onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 787, in rmtree return _rmtree_unsafe(path, onerror) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 629, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 634, in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) File "C:\Users\isard\AppData\Local\Programs\Python\Python311\Lib\tempfile.py", line 893, in onerror _os.unlink(path) PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\isard\\AppData\\Local\\Temp\\tmptu0z3x3g\\WXWork\\100\\Data\\message.db' ====================================================================== FAIL: test_bad_rows_do_not_crash_context_or_skip_later_valid_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_bad_rows_do_not_crash_context_or_skip_later_valid_messages) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 52, in test_bad_rows_do_not_crash_context_or_skip_later_valid_messages self.assertEqual([m['content'] for m in messages], ['合成消息-1', '合成消息-5']) AssertionError: Lists differ: ['合成消息-1', '合成消息-2', '合成消息-3', '合成消息-5', '合成消息-4'] != ['合成消息-1', '合成消息-5'] First differing element 1: '合成消息-2' '合成消息-5' First list contains 3 additional elements. First extra element 2: '合成消息-3' - ['合成消息-1', '合成消息-2', '合成消息-3', '合成消息-5', '合成消息-4'] + ['合成消息-1', '合成消息-5'] ====================================================================== FAIL: test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='nan') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 33, in test_nonfinite_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': nan, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ====================================================================== FAIL: test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='inf') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 33, in test_nonfinite_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': inf, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ====================================================================== FAIL: test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='NaN') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 33, in test_nonfinite_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': nan, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ====================================================================== FAIL: test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) (value='Infinity') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 33, in test_nonfinite_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': inf, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ====================================================================== FAIL: test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) (value='1e+300') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 38, in test_out_of_range_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': 1e+297, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ====================================================================== FAIL: test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) (value='1e300') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 38, in test_out_of_range_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': 1e+297, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ====================================================================== FAIL: test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) (value='100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\kefu\deploy\recognition-audit-20260916\test_database_timestamp_audit.py", line 38, in test_out_of_range_timestamps_are_not_messages self.assertIsNone(self.db._parse_message('100', self.row(value))) AssertionError: {'account': '100', 'conv_id': 'M:200', 'fp_hex': '6a247904de4b23d6606d2d77591bbcb694b19c4b3621ea067eee466c75937f9f11e4a12aaec12806', 'display_name': '客户甲', 'sender_id': '200', 'is_self': False, 'content': '合成消息', 'content_type': 2, 'send_time': 1e+197, 'server_id': '1', 'rowid': 1, 'dedup_key': '100:M:200:server:1'} is not None ---------------------------------------------------------------------- Ran 4 tests in 0.193s FAILED (failures=8, errors=4)