Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/constants/shared_constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class DutPairingModeEnum(str, Enum):
ON_NETWORK = "onnetwork"
BLE_WIFI = "ble-wifi"
NFC_WIFI = "nfc-wifi"
NFC_ETHERNET = "nfc-ethernet"
BLE_THREAD = "ble-thread"
WIFIPAF_WIFI = "wifipaf-wifi"
NFC_THREAD = "nfc-thread"
Expand All @@ -69,5 +70,6 @@ class DutPairingModeEnum(str, Enum):

NFC_PAIRING_MODES = {
DutPairingModeEnum.NFC_WIFI.value,
DutPairingModeEnum.NFC_ETHERNET.value,
DutPairingModeEnum.NFC_THREAD.value,
}
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ def test_create_config_matter_with_non_thread_modes_no_ba_params_succeeds(
assert config_matter.dut_config.pairing_mode == pairing_mode


@pytest.mark.parametrize("pairing_mode", ["nfc-thread", "nfc-wifi"])
@pytest.mark.parametrize("pairing_mode", ["nfc-thread", "nfc-wifi", "nfc-ethernet"])
def test_create_config_matter_nfc_without_discriminator_and_setup_code_succeeds(
pairing_mode: str,
) -> None:
Expand Down Expand Up @@ -369,7 +369,7 @@ def test_create_config_matter_nfc_without_discriminator_and_setup_code_succeeds(
assert config_matter.dut_config.setup_code is None


@pytest.mark.parametrize("pairing_mode", ["nfc-thread", "nfc-wifi"])
@pytest.mark.parametrize("pairing_mode", ["nfc-thread", "nfc-wifi", "nfc-ethernet"])
def test_create_config_matter_nfc_with_discriminator_succeeds(
pairing_mode: str,
) -> None:
Expand Down Expand Up @@ -405,7 +405,7 @@ def test_create_config_matter_nfc_with_discriminator_succeeds(
assert config_matter.dut_config.discriminator == "3840"


@pytest.mark.parametrize("pairing_mode", ["nfc-thread", "nfc-wifi"])
@pytest.mark.parametrize("pairing_mode", ["nfc-thread", "nfc-wifi", "nfc-ethernet"])
def test_create_config_matter_nfc_with_setup_code_succeeds(
pairing_mode: str,
) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,43 @@ async def test_generate_command_arguments_nfc_wifi_pairing_mode() -> None:
] == arguments


@pytest.mark.asyncio
async def test_generate_command_arguments_nfc_ethernet_pairing_mode() -> None:
# Mock config
mock_config = default_environment_config.copy(deep=True) # type: ignore

mock_config.test_parameters = {
"paa-trust-store-path": "/paa-root-certs",
"storage_path": "/root/admin_storage.json",
}

mock_dut_config = DutConfig(
pairing_mode=DutPairingModeEnum.NFC_ETHERNET,
chip_timeout=None,
)

mock_config.dut_config = mock_dut_config

arguments = await generate_command_arguments(
config=mock_config, omit_commissioning_method=False
)

# NFC-Ethernet needs neither --wifi-* nor --thread-dataset-hex arguments,
# since Ethernet devices don't require network credentials to commission.
assert [
"--trace-to json:log",
f"--commissioning-method {DutPairingModeEnum.NFC_ETHERNET.value}",
"--paa-trust-store-path /paa-root-certs",
"--storage_path /root/admin_storage.json",
"--int-arg",
"NFC_Reader_index:0",
] == arguments
assert "--discriminator" not in " ".join(arguments)
assert "--passcode" not in " ".join(arguments)
assert "--wifi-ssid" not in " ".join(arguments)
assert "--thread-dataset-hex" not in " ".join(arguments)


@pytest.mark.asyncio
async def test_generate_command_arguments_ble_thread() -> None:
# Mock config
Expand Down Expand Up @@ -382,6 +419,7 @@ async def test_generate_command_arguments_nfc_thread_for_external_network() -> N
NFC_PAIRING_MODES_PARAMS = [
pytest.param(DutPairingModeEnum.NFC_THREAD, id="nfc-thread"),
pytest.param(DutPairingModeEnum.NFC_WIFI, id="nfc-wifi"),
pytest.param(DutPairingModeEnum.NFC_ETHERNET, id="nfc-ethernet"),
]

MOCK_THREAD_DATASET = (
Expand Down
Loading