コード例 #1
0
ファイル: conftest.py プロジェクト: MaT1g3R/Halp
def fake_request_creation(has_start_time):
    user, password = _generate_user()
    user.save()
    d = {
        'customer': user,
        'duration': fake.time_delta(),
        'latitude': fake.latitude(),
        'longitude': fake.longitude(),
        'description': fake.text(),
        'title': fake.text(),
    }
    if has_start_time:
        d['start_time'] = fake.date_time()
    return d
コード例 #2
0
ファイル: conftest.py プロジェクト: MaT1g3R/Halp
def _generate_user():
    kwargs = {}
    if choice([True, False]):
        kwargs['bio'] = fake.text()
    password = fake.password()
    return User.objects.create_user(fake.email(), password, fake.first_name(),
                                    fake.last_name(), **kwargs), password
コード例 #3
0
def test_fail_bad_body(create_full_user, client):
    user, password = create_full_user
    data = {'request_i': 1, 'comment': fake.text()}
    resp = client.post('/api/v1/create_response',
                       data=data,
                       content_type='application/json',
                       HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 400
コード例 #4
0
def test_fail_no_request(create_full_user, client, has_start_time):
    user, password = create_full_user
    req_dict = fake_request_creation(has_start_time)
    req = Request.objects.create_request(**req_dict)
    data = {'request_id': req.id + 1, 'comment': fake.text()}
    resp = client.post('/api/v1/create_response',
                       data=data,
                       content_type='application/json',
                       HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 404
コード例 #5
0
def test_success(has_start_time, create_full_user, client):
    user, password = create_full_user
    d = {
        'duration': int(fake.time_delta().total_seconds()),
        'latitude': float(fake.latitude()),
        'longitude': float(fake.longitude()),
        'description': fake.text(),
        'title': fake.text(),
    }
    if has_start_time:
        d['start_time'] = int(fake.date_time().timestamp())
    resp = client.post('/api/v1/request',
                       data=d,
                       content_type='application/json',
                       HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 200
    resp_json = json.loads(resp.content)
    request_created = Request.objects.get(id=resp_json['request_id'])
    assert resp_json == request_converter.to_dict(request_created)
コード例 #6
0
def test_success(create_full_user, client, has_start_time):
    user, password = create_full_user
    req_dict = fake_request_creation(has_start_time)
    req = Request.objects.create_request(**req_dict)
    actual_json = request_converter.to_dict(req)
    data = {'request_id': req.id, 'comment': fake.text()}
    resp = client.post('/api/v1/create_response',
                       data=data,
                       content_type='application/json',
                       HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 200
    resp_json = json.loads(resp.content)
    actual_json['responses'].append({
        'worker': user_converter.to_dict(user),
        'comment': data['comment']
    })
    for response in resp_json['responses']:
        del response['response_id']
    assert resp_json == actual_json
コード例 #7
0
ファイル: test_request_view_get.py プロジェクト: MaT1g3R/Halp
def test_query(query, expected, create_full_user, client):
    user, password = create_full_user

    customers = [u for u, _ in generate_users(5)]
    workers = [u for u, _ in generate_users(5)]
    for u in chain(customers, workers):
        u.save()

    default_args = lambda: {
        'duration': fake.time_delta(),
        'latitude': fake.latitude(),
        'longitude': fake.longitude(),
        'description': fake.text(),
        'customer': random.choice(customers)
    }
    reqeusts = [
        Request(start_time=datetime.fromtimestamp(1000),
                assigned_to=random.choice(workers),
                finished=True,
                **default_args()),
        Request(start_time=datetime.fromtimestamp(30000),
                assigned_to=None,
                finished=False,
                **default_args())
    ]
    for r in reqeusts:
        r.clean()
        r.save()
    resp = client.get(f'/api/v1/request?{query}',
                      HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 200
    resp_dict = json.loads(resp.content)
    resp_requests = resp_dict['requests']
    assert len(resp_requests) == len(expected)
    assert sorted([request_converter.to_dict(reqeusts[i]) for i in expected],
                  key=lambda d: d['request_id']) == sorted(
                      resp_requests, key=lambda d: d['request_id'])
コード例 #8
0
import json

import pytest

from halp_backend.models import User
from halp_backend.tests import fake
from halp_backend.tests.conftest import encode_auth

pytestmark = pytest.mark.django_db


@pytest.mark.parametrize('bio', [
    fake.text(),
    fake.text(),
    fake.text(),
    fake.text(),
    fake.text(),
])
def test_update_bio(bio, create_full_user, client):
    user, password = create_full_user
    resp = client.post('/api/v1/update_bio',
                       data={'bio': bio},
                       content_type='application/json',
                       HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 200
    assert json.loads(resp.content.decode()) == {'bio': bio}
    user = User.objects.get(id=user.id)
    assert user.bio == bio
コード例 #9
0
ファイル: conftest.py プロジェクト: MaT1g3R/Halp
def fake_response(request, user=None):
    if not user:
        user, _ = _generate_user()
    response = Response(worker=user, comment=fake.text(), request=request)
    response.save()
    return response
コード例 #10
0
    resp = client.post('/api/v1/request',
                       data=d,
                       content_type='application/json',
                       HTTP_AUTHORIZATION=encode_auth(user.email, password))
    assert resp.status_code == 200
    resp_json = json.loads(resp.content)
    request_created = Request.objects.get(id=resp_json['request_id'])
    assert resp_json == request_converter.to_dict(request_created)


@pytest.mark.parametrize('data', [
    {
        'duration': -1,
        'latitude': 0,
        'longitude': 0,
        'description': fake.text(),
        'start_time': None
    },
    {
        'duration': 0,
        'latitude': 0,
        'longitude': 0,
        'description': None,
        'start_time': None
    },
    {
        'duration': 0,
        'latitude': 0,
        'longitude': 0,
        'description': fake.text(),
        'start_time': 1.2