pytest_cbor.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
  2. # SPDX-License-Identifier: Unlicense OR CC0-1.0
  3. from __future__ import unicode_literals
  4. import textwrap
  5. import pytest
  6. from pytest_embedded import Dut
  7. @pytest.mark.supported_targets
  8. @pytest.mark.generic
  9. def test_examples_cbor(dut: Dut) -> None:
  10. dut.expect(r'example: encoded buffer size \d+')
  11. dut.expect('example: convert CBOR to JSON')
  12. parsed_info = dut.expect(r'\[\{"chip":"(\w+)","unicore":(\w+),"ip":\[(\d+),(\d+),(\d+),(\d+)\]\},'
  13. r'3.1400001049041748'
  14. r',"simple\(99\)","2019-07-10 09:00:00\+0000","undefined"\]')
  15. dut.expect('example: decode CBOR manually')
  16. dut.expect(textwrap.dedent(r'''
  17. Array\[\s+
  18. Map{{\s+
  19. chip\s+
  20. {}\s+
  21. unicore\s+
  22. {}\s+
  23. ip\s+
  24. Array\[\s+
  25. {}\s+
  26. {}\s+
  27. {}\s+
  28. {}\s+
  29. \]\s+
  30. }}\s+
  31. 3.14\s+
  32. simple\(99\)\s+
  33. 2019-07-10 09:00:00\+0000\s+
  34. undefined\s+
  35. \]'''.format(parsed_info[1].decode(), parsed_info[2].decode(), parsed_info[3].decode(),
  36. parsed_info[4].decode(), parsed_info[5].decode(),parsed_info[6].decode())).replace('{', r'\{').replace('}', r'\}'))