def test_upgrade_file_verison_0_to_1_1_minimum_entries(tmpdir_factory): """The only required field in 'version 0' was credentials""" mechanism = "CURVE" publickey = "A" * 43 version0 = { "allow": [{ "credentials": mechanism + ":" + publickey }], } filename = str(tmpdir_factory.mktemp('auth_test').join('auth.json')) with open(filename, 'w') as fp: fp.write(json.dumps(version0, indent=2)) upgraded = AuthFile(filename) entries = upgraded.read()[0] assert len(entries) == 1 assert entries[0].user_id is not None expected = version0['allow'][0] expected["credentials"] = publickey expected["mechanism"] = mechanism expected["domain"] = None expected["address"] = None expected["user_id"] = entries[0].user_id # this will be a UUID expected["enabled"] = True expected["comments"] = None expected["capabilities"] = [] expected["roles"] = [] expected["groups"] = [] assert_auth_entries_same(expected, vars(entries[0]))
def test_upgrade_file_verison_0_to_1_1_minimum_entries(tmpdir_factory): """The only required field in 'version 0' was credentials""" mechanism = "CURVE" publickey = "A" * 43 version0 = { "allow": [{"credentials": mechanism + ":" + publickey}], } filename = str(tmpdir_factory.mktemp('auth_test').join('auth.json')) with open(filename, 'w') as fp: fp.write(json.dumps(version0, indent=2)) upgraded = AuthFile(filename) entries = upgraded.read()[0] assert len(entries) == 1 assert entries[0].user_id is not None expected = version0['allow'][0] expected["credentials"] = publickey expected["mechanism"] = mechanism expected["domain"] = None expected["address"] = None expected["user_id"] = entries[0].user_id # this will be a UUID expected["enabled"] = True expected["comments"] = None expected["capabilities"] = [] expected["roles"] = [] expected["groups"] = [] assert_auth_entries_same(expected, vars(entries[0]))
def test_upgrade_file_verison_0_to_1_2(tmpdir_factory): mechanism = "CURVE" publickey = "A" * 43 version0 = { "allow": [{ "domain": "vip", "address": "127.0.0.1", "user_id": "user123", "enabled": True, "comments": "This is a test entry", "capabilities": ["can_publish_temperature"], "roles": [], "groups": [], "credentials": mechanism + ":" + publickey }], "roles": { "manager": ["can_managed_platform"] }, "groups": { "admin": ["reader", "writer"] } } filename = str(tmpdir_factory.mktemp('auth_test').join('auth.json')) with open(filename, 'w') as fp: fp.write(jsonapi.dumps(version0, indent=2)) upgraded = AuthFile(filename) entries, groups, roles = upgraded.read() assert groups == version0['groups'] assert roles == version0['roles'] assert len(entries) == 1 expected = version0['allow'][0] expected["credentials"] = publickey expected["mechanism"] = mechanism expected["capabilities"] = { 'can_publish_temperature': None, 'edit_config_store': { 'identity': entries[0].user_id } } assert_auth_entries_same(expected, vars(entries[0]))
def test_upgrade_file_verison_0_to_1_1(tmpdir_factory): mechanism = "CURVE" publickey = "A" * 43 version0 = { "allow": [ { "domain": "vip", "address": "127.0.0.1", "user_id": "user123", "enabled": True, "comments": "This is a test entry", "capabilities": ["can_publish_temperature"], "roles": [], "groups": [], "credentials": mechanism + ":" + publickey } ], "roles": { "manager": ["can_managed_platform"] }, "groups": { "admin": ["reader", "writer"] } } filename = str(tmpdir_factory.mktemp('auth_test').join('auth.json')) with open(filename, 'w') as fp: fp.write(json.dumps(version0, indent=2)) upgraded = AuthFile(filename) entries, groups, roles = upgraded.read() assert groups == version0['groups'] assert roles == version0['roles'] assert len(entries) == 1 expected = version0['allow'][0] expected["credentials"] = publickey expected["mechanism"] = mechanism assert_auth_entries_same(expected, vars(entries[0]))