pytest-embedded 2.8.0__tar.gz → 2.8.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytest-embedded
3
- Version: 2.8.0
3
+ Version: 2.8.1
4
4
  Summary: A pytest plugin that designed for embedded testing.
5
5
  Author-email: Fu Hanxi <fuhanxi@espressif.com>
6
6
  Requires-Python: >=3.10
@@ -6,4 +6,4 @@ from .dut_factory import DutFactory
6
6
 
7
7
  __all__ = ['App', 'Dut', 'DutFactory']
8
8
 
9
- __version__ = '2.8.0'
9
+ __version__ = '2.8.1'
@@ -141,6 +141,7 @@ def _fixture_classes_and_options_fn(
141
141
  erase_all,
142
142
  esptool_baud,
143
143
  esp_flash_force,
144
+ no_fast_flash,
144
145
  part_tool,
145
146
  confirm_target_elf_sha256,
146
147
  erase_nvs,
@@ -157,6 +158,7 @@ def _fixture_classes_and_options_fn(
157
158
  qemu_extra_args,
158
159
  qemu_efuse_path,
159
160
  wokwi_diagram,
161
+ wokwi_usb_serial_jtag,
160
162
  skip_regenerate_image,
161
163
  encrypt,
162
164
  keyfile,
@@ -253,6 +255,7 @@ def _fixture_classes_and_options_fn(
253
255
  kwargs[fixture].update(
254
256
  {
255
257
  'app': None,
258
+ 'fast_flash': not no_fast_flash if no_fast_flash is not None else True,
256
259
  }
257
260
  )
258
261
  elif 'nuttx' in _services:
@@ -335,6 +338,7 @@ def _fixture_classes_and_options_fn(
335
338
  kwargs[fixture].update(
336
339
  {
337
340
  'wokwi_diagram': wokwi_diagram,
341
+ 'wokwi_usb_serial_jtag': wokwi_usb_serial_jtag,
338
342
  'msg_queue': msg_queue,
339
343
  'app': None,
340
344
  'meta': _meta,
@@ -680,6 +684,7 @@ class DutFactory:
680
684
  erase_all: bool | None = None,
681
685
  esptool_baud: int | None = None,
682
686
  esp_flash_force: bool | None = False,
687
+ no_fast_flash: bool | None = None,
683
688
  part_tool: str | None = None,
684
689
  confirm_target_elf_sha256: bool | None = None,
685
690
  erase_nvs: bool | None = None,
@@ -696,6 +701,7 @@ class DutFactory:
696
701
  qemu_extra_args: str | None = None,
697
702
  qemu_efuse_path: str | None = None,
698
703
  wokwi_diagram: str | None = None,
704
+ wokwi_usb_serial_jtag: bool | None = None,
699
705
  skip_regenerate_image: bool | None = None,
700
706
  encrypt: bool | None = None,
701
707
  keyfile: str | None = None,
@@ -743,6 +749,7 @@ class DutFactory:
743
749
  qemu_extra_args: Additional QEMU arguments.
744
750
  qemu_efuse_path: Efuse binary path.
745
751
  wokwi_diagram: Wokwi diagram path.
752
+ wokwi_usb_serial_jtag: Use USB Serial JTAG instead of UART for Wokwi serial communication.
746
753
  skip_regenerate_image: Skip image regeneration flag.
747
754
  encrypt: Encryption flag.
748
755
  keyfile: Keyfile for encryption.
@@ -797,6 +804,7 @@ class DutFactory:
797
804
  'erase_all': erase_all,
798
805
  'esptool_baud': esptool_baud,
799
806
  'esp_flash_force': esp_flash_force,
807
+ 'no_fast_flash': no_fast_flash,
800
808
  'part_tool': part_tool,
801
809
  'confirm_target_elf_sha256': confirm_target_elf_sha256,
802
810
  'erase_nvs': erase_nvs,
@@ -813,6 +821,7 @@ class DutFactory:
813
821
  'qemu_extra_args': qemu_extra_args,
814
822
  'qemu_efuse_path': qemu_efuse_path,
815
823
  'wokwi_diagram': wokwi_diagram,
824
+ 'wokwi_usb_serial_jtag': wokwi_usb_serial_jtag,
816
825
  'skip_regenerate_image': skip_regenerate_image,
817
826
  'encrypt': encrypt,
818
827
  'keyfile': keyfile,
@@ -209,6 +209,17 @@ def pytest_addoption(parser):
209
209
  action='store_true',
210
210
  help='force mode for esptool',
211
211
  )
212
+ arduino_group = parser.getgroup('embedded-arduino')
213
+ arduino_group.addoption(
214
+ '--no-fast-flash',
215
+ help=(
216
+ 'y/yes/true for True and n/no/false for False. '
217
+ 'Set to True to disable fast reflashing (--diff-with) for Arduino. '
218
+ 'Useful when flash state is unknown, e.g. after OTA updates. '
219
+ '(Default: False)'
220
+ ),
221
+ )
222
+
212
223
  idf_group = parser.getgroup('embedded-idf')
213
224
  idf_group.addoption(
214
225
  '--supported-targets', help='Comma-separated list of supported targets for the test case. (Default: None)'
@@ -298,6 +309,13 @@ def pytest_addoption(parser):
298
309
  '--wokwi-diagram',
299
310
  help='Path to the wokwi diagram file (Default: None)',
300
311
  )
312
+ wokwi_group.addoption(
313
+ '--wokwi-usb-serial-jtag',
314
+ help='y/yes/true for True and n/no/false for False. '
315
+ 'Use USB Serial JTAG instead of UART for serial communication in the Wokwi diagram. '
316
+ 'When enabled, the diagram will use the USB_SERIAL_JTAG interface and remove $serialMonitor connections. '
317
+ '(Default: False)',
318
+ )
301
319
 
302
320
 
303
321
  ###########
@@ -842,6 +860,13 @@ def esp_flash_force(request: FixtureRequest) -> str | None:
842
860
  return _request_param_or_config_option_or_default(request, 'esp_flash_force', False)
843
861
 
844
862
 
863
+ @pytest.fixture
864
+ @multi_dut_argument
865
+ def no_fast_flash(request: FixtureRequest) -> bool | None:
866
+ """Enable parametrization for the same cli option"""
867
+ return _request_param_or_config_option_or_default(request, 'no_fast_flash', None)
868
+
869
+
845
870
  @pytest.fixture
846
871
  @multi_dut_argument
847
872
  def build_dir(request: FixtureRequest) -> str | None:
@@ -1076,6 +1101,13 @@ def wokwi_diagram(request: FixtureRequest) -> str | None:
1076
1101
  return _request_param_or_config_option_or_default(request, 'wokwi_diagram', None)
1077
1102
 
1078
1103
 
1104
+ @pytest.fixture
1105
+ @multi_dut_argument
1106
+ def wokwi_usb_serial_jtag(request: FixtureRequest) -> bool | None:
1107
+ """Enable parametrization for the same cli option"""
1108
+ return _request_param_or_config_option_or_default(request, 'wokwi_usb_serial_jtag', None)
1109
+
1110
+
1079
1111
  ####################
1080
1112
  # Private Fixtures #
1081
1113
  ####################
@@ -1118,6 +1150,7 @@ def parametrize_fixtures(
1118
1150
  erase_all,
1119
1151
  esptool_baud,
1120
1152
  esp_flash_force,
1153
+ no_fast_flash,
1121
1154
  part_tool,
1122
1155
  confirm_target_elf_sha256,
1123
1156
  erase_nvs,
@@ -1134,6 +1167,7 @@ def parametrize_fixtures(
1134
1167
  qemu_extra_args,
1135
1168
  qemu_efuse_path,
1136
1169
  wokwi_diagram,
1170
+ wokwi_usb_serial_jtag,
1137
1171
  skip_regenerate_image,
1138
1172
  encrypt,
1139
1173
  keyfile,
File without changes