Exemple #1
0
def test_client_model_delete(db_session, conf_logger):
    clients = Client.get_all()
    client = util.get_random_client()
    client.delete()

    assert client in clients
    assert client not in Client.get_all()
    assert Client.get_by_email(client.email) is None
Exemple #2
0
def test_clients_detail_resource__on_delete(db_session, client, admin):
    # creates the object to be updated
    original_mock_data = util.get_random_user_data()

    # saves the object to be updated instance
    user_client = Client(**original_mock_data)
    user_client.set_password(original_mock_data.get('password'))
    user_client.save()

    user_client_db = Client.get_by_email(user_client.email)

    assert user_client_db is not None

    # creates the request
    response = client.simulate_delete(
        '/v1/clients/{client_id}'.format(client_id=user_client.id),
        headers={'Authorization': 'Basic {}'.format(admin.basic_password)},
    )

    json.loads(response.content).get('data')

    user_client_db = Client.get_by_email(user_client.email)

    assert user_client not in db_session
    assert user_client_db is None
Exemple #3
0
def get_client(req, resp, resource, params):
    client_id = params.get('client_id', None)
    if not client_id:
        raise falcon.HTTPError(falcon.HTTP_400)

    client = Client.get_by_id(client_id)

    if not client:
        raise falcon.HTTPError(falcon.HTTP_404)

    params['client'] = client
Exemple #4
0
    def on_get(self, req, resp):
        users = Client.get_all()
        schema = ClientSchema()
        schema.context['remove_fields'] = ['seed', 'password']
        data, errors = schema.dump(users, many=True)

        if errors:
            logger.error(errors)
            raise falcon.HTTPInternalServerError()

        data = format_response(data)

        resp.status = falcon.HTTP_200
        resp.body = json.dumps(data, ensure_ascii=False)
Exemple #5
0
def test_clients_detail_resource__on_get(db_session, client, admin):
    mock_data = util.get_random_user_data()

    user_client = Client(**mock_data)
    user_client.save()

    response = client.simulate_get(
        '/v1/clients/{client_id}'.format(client_id=user_client.id),
        headers={'Authorization': 'Basic {}'.format(admin.basic_password)},
    )

    data = json.loads(response.content).get('data')

    user_client = User.get_by_id(data.get('id'))

    assert response.status == falcon.HTTP_OK
    assert data.get('email') == user_client.email
    assert data.get('first_name') == user_client.first_name
    assert data.get('last_name') == user_client.last_name
    assert data.get('user_type') == user_client.user_type.value
    assert data.get('code') == user_client.code
    assert data.get('password', None) is None
    assert data.get('seed', None) is None
Exemple #6
0
def test_client_model(db_session, conf_logger):
    users_data = [util.get_random_user_data() for idx in range(8)]

    for user_data in users_data:
        user = Client(**user_data)
        user.set_password(user.password)
        user.save()

    for idx, user in enumerate(list(Client.get_all())):
        assert users_data[idx].get('email') == user.email
        assert users_data[idx].get('first_name') == user.first_name
        assert users_data[idx].get('last_name') == user.last_name
        assert UsersEnum.client == user.user_type
Exemple #7
0
def test_clients_detail_resource__on_put(db_session, client, admin):
    original_mock_data = util.get_random_user_data()

    # saves the object to be updated instance
    user_client = Client(**original_mock_data)
    user_client.set_password(original_mock_data.get('password'))
    user_client.save()

    mock_data = {
        "first_name":
        "{} {}".format(original_mock_data.get('first_name'),
                       util.provider.personal.name()),
    }

    response = client.simulate_put(
        '/v1/clients/{client_id}'.format(client_id=user_client.id),
        headers={'Authorization': 'Basic {}'.format(admin.basic_password)},
        body=json.dumps(mock_data))

    data = json.loads(response.content).get('data')

    assert response.status == falcon.HTTP_200
    assert data.get('first_name') == mock_data.get('first_name')
    assert data.get('first_name') != original_mock_data.get('first_name')
    assert response.status == falcon.HTTP_OK
    assert data.get('email') == user_client.email
    assert data.get('first_name') == user_client.first_name
    assert data.get('last_name') == user_client.last_name
    assert data.get('user_type') == user_client.user_type.value
    assert data.get('code') == user_client.code
    assert data.get('password', None) is None
    assert data.get('seed', None) is None

    mock_data = {
        "last_name":
        "{} {}".format(original_mock_data.get('last_name'),
                       util.provider.personal.name()),
    }

    response = client.simulate_put(
        '/v1/clients/{client_id}'.format(client_id=user_client.id),
        headers={'Authorization': 'Basic {}'.format(admin.basic_password)},
        body=json.dumps(mock_data))

    data = json.loads(response.content).get('data')

    assert response.status == falcon.HTTP_200
    assert data.get('last_name') == mock_data.get('last_name')
    assert data.get('last_name') != original_mock_data.get('last_name')
    assert data.get('email') == user_client.email
    assert data.get('first_name') == user_client.first_name
    assert data.get('last_name') == user_client.last_name
    assert data.get('user_type') == user_client.user_type.value
    assert data.get('code') == user_client.code
    assert data.get('password', None) is None
    assert data.get('seed', None) is None
Exemple #8
0
def user_client():
    client = Client(**dict(
        email='*****@*****.**', first_name='Client', last_name='Client'))
    client.set_password('admin')
    client.save()

    setattr(
        client, 'basic_password',
        b64encode("{}:{}".format(client.email,
                                 'admin').encode()).decode("ascii"))

    yield client
Exemple #9
0
def test_clients_list_resource__on_get(db_session, client, admin):
    response = client.simulate_get(
        '/v1/clients/',
        headers={'Authorization': 'Basic {}'.format(admin.basic_password)})

    data = json.loads(response.content).get('data')

    assert response.status == falcon.HTTP_OK
    assert isinstance(data, list)

    for client_data in data:
        client = Client.get_by_id(client_data.get('id'))
        assert client_data.get('email') == client.email
        assert client_data.get('first_name') == client.first_name
        assert client_data.get('last_name') == client.last_name
        assert client_data.get('code') == client.code
        assert client_data.get('password', None) is None
        assert client_data.get('user_type') == UsersEnum.client.value
Exemple #10
0
def get_random_client():
    clients = Client.get_all()
    return random.choice(clients)
Exemple #11
0
def create_random_client():
    data = get_random_user_data()
    client = Client(**data)
    client.save()
    return client
Exemple #12
0
 def make_user(self, data):
     from ssms.models import Client
     data['user_type'] = 'client'
     return Client(**data)