Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()