Skip to content

Commit 975e708

Browse files
committed
add get_csr test
Signed-off-by: Maximilian Deubel <maximilian.deubel@nordicsemi.no>
1 parent 00b93e6 commit 975e708

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

tests/test_device_credentials_installer.py

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
import os
1111
from collections import namedtuple
1212

13-
TEST_KEYGEN = [b"OK\r\n", b"%KEYGEN: \"MIIBCzCBrwIBADAvMS0wKwYDVQQDDCQ1MDM2Mzk1My0zMjM0LTQ3MjMtODBiOS0xNTAzZDg4MjcxYmYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ37lDghqs2kF2iiH8lYRDDxNMiziQRPPdw9Meb1iHfTEZNdlB1xZzMV-oK6i52p1GHYQszjoDzUAZF2zU2MTGGoB4wHAYJKoZIhvcNAQkOMQ8wDTALBgNVHQ8EBAMCA-gwDAYIKoZIzj0EAwIFAANJADBGAiEAzaMPi5NcWFYZBJGBMk0tU-TBoNDVlQUzhHWJzXKRTWsCIQCWYpYqjccA281F5Geb8SwOP3tnjS_ZbAXUgVWhTVNuvg.0oRDoQEmoQRBIVhM2dn3hQlQUDY5UzI0RyOAuRUD2IJxv0IYNFggTaa7Z9K-8bQPz3YG5o_h32quNr0FHEtnX5VpEZ-8gflQY8D67v4xx32mF0L3-mbuuVhAfY3TgibaimIVPaN1C3Sz_oWj6JPf8sEOV2XNBDUNCV3sD3WdNOjgv32-rLXAx_vBIvpk1DTCb3Y97zqFhhdKlw\"\r\n"]
13+
TEST_KEYGEN_UUID = [b"OK\r\n", b"%KEYGEN: \"MIIBCzCBrwIBADAvMS0wKwYDVQQDDCQ1MDM2Mzk1My0zMjM0LTQ3MjMtODBiOS0xNTAzZDg4MjcxYmYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ37lDghqs2kF2iiH8lYRDDxNMiziQRPPdw9Meb1iHfTEZNdlB1xZzMV-oK6i52p1GHYQszjoDzUAZF2zU2MTGGoB4wHAYJKoZIhvcNAQkOMQ8wDTALBgNVHQ8EBAMCA-gwDAYIKoZIzj0EAwIFAANJADBGAiEAzaMPi5NcWFYZBJGBMk0tU-TBoNDVlQUzhHWJzXKRTWsCIQCWYpYqjccA281F5Geb8SwOP3tnjS_ZbAXUgVWhTVNuvg.0oRDoQEmoQRBIVhM2dn3hQlQUDY5UzI0RyOAuRUD2IJxv0IYNFggTaa7Z9K-8bQPz3YG5o_h32quNr0FHEtnX5VpEZ-8gflQY8D67v4xx32mF0L3-mbuuVhAfY3TgibaimIVPaN1C3Sz_oWj6JPf8sEOV2XNBDUNCV3sD3WdNOjgv32-rLXAx_vBIvpk1DTCb3Y97zqFhhdKlw\"\r\n"]
14+
TEST_KEYGEN_IMEI = [b"OK\r\n", b"%KEYGEN: \"MIH4MIGeAgEAMB4xHDAaBgNVBAMME25yZi0zNTUwMjU5MzAwMDAwMDAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATYRrWI0v6LJWciuTlscw8E1TcOBJoygkALKecquhe-fr_QT_tcjC2DgmDyX1cjTubp7n_mUaf5ZJ1s-Ke-ABBuoB4wHAYJKoZIhvcNAQkOMQ8wDTALBgNVHQ8EBAMCA-gwDAYIKoZIzj0EAwIFAANHADBEAiBDTS-I_ye8nJpB7vtO6FQWvnUhJnG6QsjRPo56nBFh2gIgPB5NW16dANAMmn0VLMBXGeRPTtoxOs5Ld1Z7JW46_8s.0oRDoQEmoQRBIVhM2dn3hQlQUDQ5VjA3RziADR8p4KD3v0IYNFggl3ygk__l-pZ9jtlsf0AyuFJlRaaEouhzYgau2zOcHwBQp2eEbVMiHVcHrE9R2670dlhA1a7jaKq3ALRx2h-h2TIkxxh82oyr4c4LqzraUecL8SFek-IbvEBfv30695FKOt3FXEk7y5G_JW3yaRQGczL3TQ\"\r\n"]
1415
TEST_CA_FILE = "tests/fixtures/test_ca.pem"
1516
TEST_CA_KEY_FILE = "tests/fixtures/test_ca_prv.pem"
1617
TEST_CGSN = [b"OK\r\n", b"355025930000000\r\n"]
@@ -21,10 +22,12 @@ def __init__(self, *args, **kwargs):
2122
self.response = []
2223
def write(self, data):
2324
data_str = data.decode('utf-8')
24-
if data_str.strip().startswith('AT%KEYGEN=52,2,0'):
25-
self.response = TEST_KEYGEN
25+
if data_str.strip() == ('AT%KEYGEN=52,2,0'):
26+
self.response = TEST_KEYGEN_UUID.copy()
27+
elif data_str.strip() == ('AT%KEYGEN=52,2,0,"CN=nrf-355025930000000"'):
28+
self.response = TEST_KEYGEN_IMEI.copy()
2629
elif data_str.strip() == "AT+CGSN":
27-
self.response = TEST_CGSN
30+
self.response = TEST_CGSN.copy()
2831
elif data_str.strip() == "AT+CFUN=4":
2932
self.response = [b"OK\r\n"]
3033
elif data_str.strip() == "AT+CGMR":
@@ -51,7 +54,7 @@ class TestDeviceCredentialsInstaller:
5154
def test_minimal_case(self, ser, select_device):
5255
with TemporaryDirectory() as tmp_dir:
5356
csv_file = os.path.join(tmp_dir, 'onboard.csv')
54-
args = f"--port /not/a/real/device --cmd-type at --ca {TEST_CA_FILE} --ca-key {TEST_CA_KEY_FILE} --csv {csv_file} --term CRLF --sectag 52".split()
57+
args = f"--port /not/a/real/device --log-level debug --cmd-type at --ca {TEST_CA_FILE} --ca-key {TEST_CA_KEY_FILE} --csv {csv_file} --term CRLF --sectag 52".split()
5558
# call DUT
5659
device_credentials_installer.main(args)
5760
# check that the file was created
@@ -65,3 +68,23 @@ def test_minimal_case(self, ser, select_device):
6568
assert fw_types == "APP|MODEM"
6669
assert cert_pem.startswith("-----BEGIN CERTIFICATE-----")
6770
assert cert_pem.endswith("-----END CERTIFICATE-----")
71+
72+
@patch("nrfcredstore.comms.select_device", return_value=(FakeSerialPort("/not/a/real/device"), "TEST_DEVICE"))
73+
@patch("nrfcredstore.comms.serial.Serial", return_value=FakeSerial())
74+
def test_nrf_prefix(self, ser, select_device):
75+
with TemporaryDirectory() as tmp_dir:
76+
csv_file = os.path.join(tmp_dir, 'onboard.csv')
77+
args = f"--port /not/a/real/device --log-level debug --id-imei --id-str nrf- --cmd-type at --ca {TEST_CA_FILE} --ca-key {TEST_CA_KEY_FILE} --csv {csv_file} --term CRLF --sectag 52".split()
78+
# call DUT
79+
device_credentials_installer.main(args)
80+
# check that the file was created
81+
assert os.path.exists(csv_file)
82+
# check that the file has the expected contents
83+
with open(csv_file, "r") as f:
84+
content = f.read().strip()
85+
device_id, sub_type, tags, fw_types, cert_pem = content.split(",")
86+
cert_pem = cert_pem.replace("\"", "").strip()
87+
assert device_id == "nrf-355025930000000"
88+
assert fw_types == "APP|MODEM"
89+
assert cert_pem.startswith("-----BEGIN CERTIFICATE-----")
90+
assert cert_pem.endswith("-----END CERTIFICATE-----")

0 commit comments

Comments
 (0)