def test_user_set_premium_credentials(rotkehlchen_api_server, username): """Test that setting the premium credentials endpoint works. We mock the server accepting the premium credentials """ rotki = rotkehlchen_api_server.rest_api.rotkehlchen _, patched_premium_at_set, patched_get = create_patched_premium( PremiumCredentials(VALID_PREMIUM_KEY, VALID_PREMIUM_SECRET), patch_get=True, metadata_last_modify_ts=0, metadata_data_hash=b'', metadata_data_size=0, ) # Set premium credentials for current user data = { 'premium_api_key': VALID_PREMIUM_KEY, 'premium_api_secret': VALID_PREMIUM_SECRET } with patched_premium_at_set: response = requests.patch( api_url_for(rotkehlchen_api_server, "usersbynameresource", name=username), json=data, ) assert_simple_ok_response(response) assert rotki.premium is not None assert rotki.premium.credentials.serialize_key() == VALID_PREMIUM_KEY assert rotki.premium.credentials.serialize_secret() == VALID_PREMIUM_SECRET with patched_get: assert rotki.premium.is_active()
def test_user_creation_with_premium_credentials(rotkehlchen_api_server, data_dir): """Test that PUT at user endpoint can create a new user""" # Create a user with premium credentials username = '******' data = { 'name': username, 'password': '******', 'premium_api_key': VALID_PREMIUM_KEY, 'premium_api_secret': VALID_PREMIUM_SECRET, } rotki = rotkehlchen_api_server.rest_api.rotkehlchen patched_premium_at_start, _, patched_get = create_patched_premium( PremiumCredentials(VALID_PREMIUM_KEY, VALID_PREMIUM_SECRET), patch_get=True, metadata_last_modify_ts=0, metadata_data_hash=b'', metadata_data_size=0, ) with patched_premium_at_start: response = requests.put(api_url_for(rotkehlchen_api_server, "usersresource"), json=data) assert_proper_response(response) check_proper_unlock_result(response.json()) # Query users and make sure the new user is logged in response = requests.get( api_url_for(rotkehlchen_api_server, "usersresource")) assert_proper_response(response) json = response.json() assert json['result'][username] == 'loggedin' assert len(json['result']) == 1 # Check that the directory was created assert Path(data_dir / username / 'rotkehlchen.db').exists() # Check that the user has premium assert rotki.premium is not None assert rotki.premium.credentials.serialize_key() == VALID_PREMIUM_KEY assert rotki.premium.credentials.serialize_secret() == VALID_PREMIUM_SECRET with patched_get: assert rotki.premium.is_active()