def _test_ok(self, management_api, devices, **kwargs): aid = '1' device_id = '2' key = '''-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty 1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0 iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG UwIDAQAB -----END PUBLIC KEY----- ''' iddata = '{"foo":"bar"}' req = management_api.make_preauth_req(aid, device_id, iddata, key) _, rsp = management_api.preauthorize(req, **kwargs) assert rsp.status_code == 201 devs = management_api.list_devices(**kwargs) assert len(devs) == 6 found = [d for d in devs if d.id == device_id] assert len(found) == 1 found = found[0] assert found.id == device_id assert found.id_data == iddata assert len(found.auth_sets) == 1 auth_set = found.auth_sets[0] assert auth_set.id == aid assert auth_set.id_data == iddata assert compare_keys(auth_set.pubkey, key) assert auth_set.status == 'preauthorized'
def _test_ok(self, management_api, devices, **kwargs): aid = '1' device_id = '2' key = 'key' iddata = json.dumps({'foo': 'bar'}) req = management_api.make_preauth_req(aid, device_id, iddata, key) _, rsp = management_api.preauthorize(req) assert rsp.status_code == 201 devs = management_api.list_devices() assert len(devs) == 6 found = [d for d in devs if d.id == device_id] assert len(found) == 1 found = found[0] assert found.id == device_id assert found.id_data == iddata assert len(found.auth_sets) == 1 auth_set = found.auth_sets[0] assert auth_set.id == aid assert auth_set.id_data == iddata assert auth_set.pubkey == key assert auth_set.status == 'preauthorized'
def _test_conflict(self, management_api, devices, **kwargs): existing = devices[0][0] req = management_api.make_preauth_req('1', '2', existing.identity, 'key') try: _, rsp = management_api.preauthorize(req) except bravado.exception.HTTPError as e: assert e.response.status_code == 409 devs = management_api.list_devices() assert len(devs) == 5
def _test_conflict(self, management_api, devices, **kwargs): existing = devices[0][0] req = management_api.make_preauth_req('1', '2', existing.identity, existing.public_key) try: _, rsp = management_api.preauthorize(req, **kwargs) except bravado.exception.HTTPError as e: assert e.response.status_code == 409 else: assert False, "unexpected code " + str(rsp.status_code) devs = management_api.list_devices(**kwargs) assert len(devs) == 5
def _test_delete_authset_preauth_OK(self, management_api, devices, **kwargs): # preauthorize a device aid = 'aid-preauth' device_id = 'id-preauth' iddata = json.dumps({'mac': 'mac-preauth'}) key = '''-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty 1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0 iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG UwIDAQAB -----END PUBLIC KEY----- ''' req = management_api.make_preauth_req(aid, device_id, iddata, key) _, rsp = management_api.preauthorize(req, **kwargs) assert rsp.status_code == 201 # check device created dev = management_api.get_device(id=device_id, **kwargs) assert dev assert len(dev.auth_sets) == 1 assert dev.auth_sets[0].status == 'preauthorized' assert dev.auth_sets[0].id == aid # delete auth set, check device deleted rsp = management_api.delete_authset(dev.id, aid, **kwargs) assert rsp.status_code == 204 found = None try: found = management_api.get_device(id=device_id, **kwargs) except bravado.exception.HTTPError as e: assert e.response.status_code == 404 assert not found # check all other devices intact after_devs = management_api.list_devices(**kwargs) assert len(after_devs) == len(devices)
def _test_bad_key(self, management_api, devices, **kwargs): aid = '1' device_id = '2' key = '''-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty 1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0 iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG UwIDAQAB ''' iddata = '{"foo":"bar"}' req = management_api.make_preauth_req(aid, device_id, iddata, key) try: _, rsp = management_api.preauthorize(req, **kwargs) except bravado.exception.HTTPError as e: assert e.status_code == 400 assert e.swagger_result.error == 'failed to decode preauth request: cannot decode public key'
def do_make_devices(management_api, device_api, tenant_token=""): """ Prepare a set of devices, including a 'preauthorized' one. """ auth = {} if tenant_token != '': auth = management_api.make_auth(tenant_token=tenant_token) cnt = 5 devs = make_devices(device_api, cnt, tenant_token) aid = AID device_id = DEVID iddata = IDDATA key = PUBKEY req = management_api.make_preauth_req(aid, device_id, iddata, key) _, rsp = management_api.preauthorize(req, **auth) assert rsp.status_code == 201 devs = management_api.list_devices(**auth) assert len(devs) == cnt + 1