def test_regenerate_user_key(self): pubkey = "1 2" privkey = "3 4 5" donor_key = "6 7" # Create a user who will be doing the acquiring. user = maindb.create_user("testuser", "password", "*****@*****.**", "affiliation", pubkey, privkey, donor_key) userport = user.usable_vessel_port vesselcount = 4 # Have every vessel acquisition to the backend request succeed. calls_results = [True] * vesselcount mocklib.mock_backend_acquire_vessel(calls_results) testutil.create_nodes_on_different_subnets(vesselcount, [userport]) # Acquire all vessels on behalf of this user. all_vessels_list = interface.acquire_vessels(user, vesselcount, 'rand') # Release 2 vessels. released_vessels_list = all_vessels_list[:2] kept_vessels_list = all_vessels_list[2:] interface.release_vessels(user, released_vessels_list) # Ensure all of the vessels are marked as having user keys in sync. for vessel in all_vessels_list: # Get a fresh vessel from the db. vessel = maindb.get_vessel(vessel.node.node_identifier, vessel.name) self.assertTrue(vessel.user_keys_in_sync) # We expect a single key to be generated through the keygen api (the new # user public key). mocklib.mock_keygen_generate_keypair([("55 66", "77 88 99")]) interface.change_user_keys(user, pubkey=None) # Get a new user object from the database. user = maindb.get_user(user.username) # Make sure the user's key changed. self.assertEqual(user.user_pubkey, "55 66") self.assertEqual(user.user_privkey, "77 88 99") # Make sure that all of the vessels the user has access to (and no other # vessels) are marked as needing user keys to be sync'd. # Ensure all of the vessels are marked as having user keys in sync. for vessel in kept_vessels_list: # Get a fresh vessel from the db. vessel = maindb.get_vessel(vessel.node.node_identifier, vessel.name) self.assertFalse(vessel.user_keys_in_sync) for vessel in released_vessels_list: # Get a fresh vessel from the db. vessel = maindb.get_vessel(vessel.node.node_identifier, vessel.name) self.assertTrue(vessel.user_keys_in_sync)
def test_seattlegeni_generates_user_keypair(self): # We expect a single keypair to be generated directly through the keygen # api (specifically, the user keys). user_pubkey = "3 4" user_privkey = "2 3 3" mocklib.mock_keygen_generate_keypair([(user_pubkey, user_privkey)]) # We expect a single key to be generated directly through the backed api # (specifically, the donor key). donor_pubkey = "1 2" mocklib.mock_backend_generate_key([donor_pubkey]) provided_pubkey=None interface.register_user(good_username, good_password, good_email, good_affiliation, provided_pubkey) user_from_db = maindb.get_user(good_username) assert(user_from_db.user_pubkey == user_pubkey) assert(user_from_db.user_privkey == user_privkey) assert(user_from_db.donor_pubkey == donor_pubkey)
def test_seattlegeni_generates_user_keypair(self): # We expect a single keypair to be generated directly through the keygen # api (specifically, the user keys). user_pubkey = "3 4" user_privkey = "2 3 3" mocklib.mock_keygen_generate_keypair([(user_pubkey, user_privkey)]) # We expect a single key to be generated directly through the backed api # (specifically, the donor key). donor_pubkey = "1 2" mocklib.mock_backend_generate_key([donor_pubkey]) provided_pubkey = None interface.register_user(good_username, good_password, good_email, good_affiliation, provided_pubkey) user_from_db = maindb.get_user(good_username) assert (user_from_db.user_pubkey == user_pubkey) assert (user_from_db.user_privkey == user_privkey) assert (user_from_db.donor_pubkey == donor_pubkey)