39 行
1.7 KiB
Python
39 行
1.7 KiB
Python
"""Verification reports must preserve failure and omit device identifiers."""
|
|
import json
|
|
from pathlib import Path
|
|
import sys
|
|
import unittest
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
|
from verify import safe_watch_info, watch_success
|
|
|
|
|
|
class VerificationTests(unittest.TestCase):
|
|
def test_nested_info_keeps_versions_and_omits_identifiers(self):
|
|
result = {'code': 200, 'values': json.dumps({
|
|
'model': 'S2', 'runtimeVersion': '0.7', 'deviceCode': 'private-device-id',
|
|
'mac': 'private-mac', 'license': 'private-license',
|
|
'firmwareVersion': {'serial': 'private-serial'}})}
|
|
self.assertEqual(safe_watch_info(result), {'model': 'S2', 'runtimeVersion': '0.7'})
|
|
|
|
def test_empty_callback_does_not_invent_a_model(self):
|
|
self.assertEqual(safe_watch_info({'code': 200, 'values': ''}), {})
|
|
|
|
def test_oww265_msg_envelope_is_redacted(self):
|
|
result = {'code': 200, 'values': '', 'msg': json.dumps({
|
|
'brand': 'OPPO', 'model': 'OWW265', 'masVersion': 2006005,
|
|
'runtimeVersion': '0.8.0-5', 'nucleusVersion': '0.8.0-229',
|
|
'mac': 'private-mac', 'uuid': 'private-uuid', 'vendorId': 1})}
|
|
self.assertEqual(safe_watch_info(result), {
|
|
'brand': 'OPPO', 'model': 'OWW265', 'masVersion': 2006005,
|
|
'runtimeVersion': '0.8.0-5', 'nucleusVersion': '0.8.0-229'})
|
|
|
|
def test_watch_error_is_not_success_even_with_success_state(self):
|
|
self.assertFalse(watch_success({'state': 'success', 'result': {'code': 4008}}))
|
|
self.assertFalse(watch_success({'state': 'timeout', 'result': {'code': 200}}))
|
|
self.assertTrue(watch_success({'state': 'success', 'result': {'code': 200}}))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|