예제 #1
0
def domain_rooms():
    room_1 = Room(
        code=uuid.uuid4(),
        size=215,
        price=39,
        longitude=-0.09998975,
        latitude=51.75436293,
    )

    room_2 = Room(
        code=uuid.uuid4(),
        size=405,
        price=66,
        longitude=0.18228006,
        latitude=51.74640997,
    )

    room_3 = Room(
        code=uuid.uuid4(),
        size=56,
        price=60,
        longitude=0.27891577,
        latitude=51.45994069,
    )

    room_4 = Room(
        code=uuid.uuid4(),
        size=93,
        price=48,
        longitude=0.33894476,
        latitude=51.39916678,
    )

    return [room_1, room_2, room_3, room_4]
예제 #2
0
def test_room_model_comparison(room_dict):
    code = uuid.uuid4()
    rd = room_dict(code)
    room1 = Room.from_dict(rd)
    room2 = Room.from_dict(rd)

    assert room1 == room2
예제 #3
0
def test_room_model_comparison():
    room_dict = {
        'code': uuid.uuid4(),
        'size': 200,
        'price': 10,
        'longitude': -0.09998975,
        'latitude': 51.75436293
    }
    room1 = Room.from_dict(room_dict)
    room2 = Room.from_dict(room_dict)
    assert room1 == room2
예제 #4
0
def test_room_model_comparison():
    init_dict = {
        "code": uuid.uuid4(),
        "size": 200,
        "price": 10,
        "longitude": -0.09998975,
        "latitude": 51.75436293
    }

    room1 = Room.from_dict(init_dict)
    room2 = Room.from_dict(init_dict)

    assert room1 == room2
예제 #5
0
def test_room_model_from_dict(room_dict):
    code = uuid.uuid4()
    room = Room.from_dict(room_dict(code))

    assert room.code == code
    assert room.size == 200
    assert room.price == 10
    assert room.longitude == -0.09998975
    assert room.latitude == 51.7546293
예제 #6
0
def test_room_model_to_dict():
    room_dict = {
        'code': uuid.uuid4(),
        'size': 200,
        'price': 10,
        'longitude': -0.09998975,
        'latitude': 51.75436293
    }
    room = Room.from_dict(room_dict)
    assert room.to_dict() == room_dict
예제 #7
0
def test_room_model_init():
    code = uuid.uuid4()
    room = Room(code,
                size=200,
                price=10,
                longitude=-0.09998975,
                latitude=51.75436293)
    assert room.code == code
    assert room.size == 200
    assert room.price == 10
    assert room.longitude == -0.09998975
    assert room.latitude == 51.75436293
예제 #8
0
def test_room_model_to_dict():
    init_dict = {
        "code": uuid.uuid4(),
        "size": 200,
        "price": 10,
        "longitude": -0.09998975,
        "latitude": 51.75436293
    }

    room = Room.from_dict(init_dict)

    assert room.to_dict() == init_dict
예제 #9
0
def test_serialize_domain_room(expected_json_factory):
    code = uuid.uuid4()
    size = 200
    price = 10
    longitude = -0.09998975
    latitude = 51.75436293

    room = Room(code, size, price, longitude, latitude)
    expected_json = expected_json_factory(code, size, price, longitude, latitude)

    json_room = json.dumps(room, cls=RoomJsonEncoder)

    assert json.loads(json_room) == json.loads(expected_json)
예제 #10
0
def test_create_room_from_dict():
    code = uuid.uuid4()
    room = Room.from_dict({
        'code': code,
        'size': 200,
        'price': 10,
        'longitude': -0.09998975,
        'latitude': 51.75436293
    })

    assert room.code == code
    assert room.size == 200
    assert room.price == 10
    assert room.longitude == -0.09998975
    assert room.latitude == 51.75436293
예제 #11
0
def test_room_model_from_dict():
    code = uuid.uuid4()
    init_dict = {
        "code": code,
        "size": 200,
        "price": 10,
        "longitude": -0.09998975,
        "latitude": 51.75436293
    }

    room = Room.from_dict(init_dict)

    assert room.code == code
    assert room.size == 200
    assert room.price == 10
    assert room.longitude == -0.09998975
    assert room.latitude == 51.75436293
예제 #12
0
    def list(self, filters=None):
        collection = self.db.rooms
        if filters is None:
            result = collection.find()
        else:
            mongo_filter = {}
            for key, value in filters.items():
                key, operator = key.split('__')

                filter_value = mongo_filter.get(key, {})
                if key == 'price':
                    value = int(value)
                filter_value['${}'.format(operator)] = value
                mongo_filter[key] = filter_value

            result = collection.find(mongo_filter)

        return [Room.from_dict(d) for d in result]
예제 #13
0
def test_serialize_domain_room():
    code = uuid.uuid4()
    room = Room(code=code,
                size=200,
                price=10,
                longitude=-0.09998975,
                latitude=51.75436293)
    expected_json = """
  {{
  "code": "{}",
  "size": 200,
  "price": 10,
  "longitude": -0.09998975,
  "latitude": 51.75436293
  }}
  """.format(code)
    json_room = json.dumps(room, cls=RoomJsonEncoder)
    assert json.loads(json_room) == json.loads(expected_json)
예제 #14
0
 def __init__(self, data):
     self.data = [Room.from_dict(i) for i in data]
예제 #15
0
def test_repository_list_without_parameters(room_dicts):
    repo = MemRepo(room_dicts)

    rooms = [Room.from_dict(i) for i in room_dicts]

    assert repo.list() == rooms
예제 #16
0
 def list(self):
     return [Room.from_dict(i) for i in self.data]
예제 #17
0
 def _rooms_factory(size, price, longitude, latitude, code=uuid.uuid4()):
     room = Room(code, size, price, longitude, latitude)
     return room
예제 #18
0
def test_room_model_to_dict(room_dict):
    code = uuid.uuid4()
    rd = room_dict(code)
    room = Room.from_dict(rd)

    assert room.to_dict() == rd
예제 #19
0
import json
from unittest import mock

from rentomatic.domain.room import Room
from rentomatic.response_objects import response_objects as res

room_dict = {
    "code": "3251a5bd-86be-428d-8ae9-6e51a8048c33",
    "size": 200,
    "price": 10,
    "longitude": -0.09998975,
    "latitude": 51.75436293,
}
room = Room.from_dict(room_dict)
rooms = [room]


@mock.patch("rentomatic.use_cases.room_list_use_case.RoomListUseCase")
def test_get(mock_use_case, client):
    mock_use_case().execute.return_value = res.ResponseSuccess(rooms)

    http_response = client.get("/rooms")

    assert json.loads(http_response.data.decode("UTF-8")) == [room_dict]

    mock_use_case().execute.assert_called()
    args, kwargs = mock_use_case().execute.call_args
    assert args[0].filters == {}  # args[0] is RequestObject

    assert http_response.status_code == 200
    assert http_response.mimetype == "application/json"
예제 #20
0
  
import json
from unittest import mock

from rentomatic.domain.room import Room

room_dict = {
    "code": "3251a5bd-86be-428d-8ae9-6e51a8048c33",
    "size": 200,
    "price": 10,
    "longitude": -0.09998975,
    "latitude": 51.75436293,
}

rooms = [Room.from_dict(room_dict)]


@mock.patch("application.rest.room.room_list_use_case")
def test_get(mock_use_case, client):
    mock_use_case.return_value = rooms

    http_response = client.get("/rooms")

    assert json.loads(http_response.data.decode("UTF-8")) == [room_dict]
    mock_use_case.assert_called()
    assert http_response.status_code == 200
    assert http_response.mimetype == "application/json"