예제 #1
0
def test_get_bet_should_raise_an_exception_when_entity_does_not_exist(
        mongodb: Database) -> None:
    # given
    repo = MongoDBBetRepository()  # type: ignore

    # then
    with pytest.raises(BetNotFoundError):
        repo.get(ObjectId())
예제 #2
0
def test_can_get_bet(mongodb: Database) -> None:
    # given
    repo = MongoDBBetRepository()  # type: ignore

    # when
    bet_id = ObjectId()
    mongodb["bet"].insert_one({
        "_id": bet_id,
        "opponent_1": "test 1",
        "opponent_2": "test 2",
        "odds_1": Decimal128("4.12"),
        "odds_2": Decimal128("3.56"),
        "category": Category.ESPORT.value,
        "provider": Provider.EFORTUNA.value,
        "date": datetime.utcnow(),
        "url": "/test/bet/url",
        "updated_at": datetime.utcnow(),
        "created_at": datetime.utcnow(),
    })

    # and
    bet = repo.get(bet_id)

    # then
    assert isinstance(bet, Bet)
    assert bet.id == bet_id
    assert bet.opponent_1 == "test 1"
    assert bet.opponent_2 == "test 2"
    assert bet.odds_1.compare(Decimal(4.12))
    assert bet.odds_2.compare(Decimal(3.56))
    assert bet.url == "/test/bet/url"
예제 #3
0
def test_can_save_bet(mongodb: Database, dummy_bet_id: ObjectId) -> None:
    # given
    repo = MongoDBBetRepository()  # type: ignore

    # and
    bet = repo.get(dummy_bet_id)

    # and
    bet.odds_1 = Decimal(6.12)
    bet.url = "another/new/url"

    # when
    repo.save(bet)

    # then
    document = mongodb["bet"].find_one({"_id": bet.id})
    assert str(document["odds_1"]) == str(round(bet.odds_1, 2))
    assert document["url"] == "another/new/url"