Exemple #1
0
def test_save_saves_result(storage):
    fake = faker.Faker()

    competitor1 = helpers.create_competitor(storage)
    competitor2 = helpers.create_competitor(storage)
    match = helpers.create_match(
        storage,
        competitors=[competitor1, competitor2],
    )

    result1 = {
        fake.word(): fake.random_int(),
        fake.word(): fake.random_int(),
    }
    result2 = {
        fake.word(): fake.random_int(),
        fake.word(): fake.random_int(),
    }
    match.set_result(competitor1, result1)
    match.set_result(competitor2, result2)

    storage.match.save(match)

    loaded = storage.match.load(match.id)

    assert loaded.result[0].competitor == competitor1
    assert loaded.result[0].result == result1
    assert loaded.result[1].competitor == competitor2
    assert loaded.result[1].result == result2
Exemple #2
0
def test_create(storage, phase):
    fake = faker.Faker()

    round = fake.random_int(1, 10)
    position = fake.random_int(0, 3)
    pool = fake.random_int(0, 4)
    competitors = [
        helpers.create_competitor(storage),
        helpers.create_competitor(storage),
    ]

    match = storage.match.create(
        phase_id=phase.id,
        round=round,
        position=position,
        pool=pool,
        competitors=competitors,
    )

    assert match.id is not None
    assert match.phase_id == phase.id
    assert match.round == round
    assert match.position == position
    assert match.pool == pool
    assert match.competitors == competitors
Exemple #3
0
def test_save(storage):
    fake = faker.Faker()
    match = helpers.create_match(
        storage,
        competitors=[helpers.create_competitor(storage)],
    )

    new_round = fake.random_int(1, 10)
    new_position = fake.random_int(0, 3)
    new_pool = fake.random_int(0, 4)
    new_competitors = [
        helpers.create_competitor(storage),
        helpers.create_competitor(storage),
    ]

    match.round = new_round
    match.position = new_position
    match.pool = new_pool

    match.competitors = new_competitors

    saved = storage.match.save(match)

    assert saved.round == new_round
    assert saved.position == new_position
    assert saved.pool == new_pool
    assert saved.competitors == new_competitors

    loaded = storage.match.load(match.id)
    assert loaded.round == new_round
    assert loaded.position == new_position
    assert loaded.pool == new_pool
    assert loaded.competitors == new_competitors
Exemple #4
0
def test_find_all(storage):
    competitors = [helpers.create_competitor(storage) for _ in range(0, 10)]

    loaded = list(storage.competitor.find_all())
    assert len(loaded) == len(competitors)

    assert loaded == competitors
Exemple #5
0
def test_create_with_competitors(storage, tournament):
    fake = faker.Faker()
    name = fake.word()
    scheme = fake.word()
    gender = fake.random_element(('m', 'f'))
    minimum_age = fake.random_int(min=1, max=10)
    maximum_age = fake.random_int(min=11, max=20)
    minimum_weight = fake.pydecimal(left_digits=2,
                                    right_digits=2,
                                    positive=True)
    maximum_weight = minimum_weight + 10
    competitors = [helpers.create_competitor(storage) for _ in range(0, 5)]

    competition = storage.competition.create(
        tournament=tournament,
        name=name,
        scheme=scheme,
        gender=gender,
        minimum_age=minimum_age,
        maximum_age=maximum_age,
        minimum_weight=minimum_weight,
        maximum_weight=maximum_weight,
        competitors=competitors,
    )

    loaded = storage.competition.load(competition.id)
    assert len(loaded.competitors) == len(competitors)
Exemple #6
0
def test_load(storage):
    match = helpers.create_match(
        storage,
        competitors=[
            helpers.create_competitor(storage),
            helpers.create_competitor(storage),
            helpers.create_competitor(storage),
        ],
    )

    loaded = storage.match.load(match.id)

    assert loaded.round == match.round
    assert loaded.position == match.position
    assert loaded.pool == match.pool
    assert loaded.competitors == match.competitors
Exemple #7
0
def test_save_merges_result(storage, phase):
    fake = faker.Faker()
    competitors = [create_competitor(storage) for _ in range(0, 4)]

    for lot, competitor in enumerate(competitors):
        phase.competitors.append(competitor, pool=1, lot=lot)

    phase.result = [
        phase_entities.Result(competitor, dict()) for competitor in competitors
    ]

    phase = storage.phase.save(phase)

    random.shuffle(competitors)

    results = [
        phase_entities.Result(
            competitor=competitor,
            result={fake.word(): fake.random_int()},
        ) for competitor in competitors[:-2]
    ]
    phase.results = results
    storage.phase.save(phase)

    loaded = storage.phase.load(phase.id)
    assert loaded.results == results
Exemple #8
0
def test_save_competitors(storage, tournament, competition):
    competitor = helpers.create_competitor(storage)
    competition.competitors.append(competitor)
    competition = storage.competition.save(competition)

    assert competition.competitors == [competitor]

    competition.competitors.remove(competitor)
    competition = storage.competition.save(competition)

    assert competition.competitors == []
Exemple #9
0
def test_save_saves_competitors(storage):
    competitors = [helpers.create_competitor(storage)]
    tournament = helpers.create_tournament(storage, competitors)

    competitor = helpers.create_competitor(storage)

    tournament.competitors.append(competitor)
    storage.tournament.save(tournament)

    persisted = storage.tournament.load(tournament.id)

    assert len(persisted.competitors) == 2
    assert persisted.competitors == tournament.competitors

    tournament.competitors.remove(tournament.competitors[0])
    storage.tournament.save(tournament)

    persisted = storage.tournament.load(tournament.id)

    assert len(persisted.competitors) == 1
    assert persisted.competitors == tournament.competitors
Exemple #10
0
def test_create(storage):
    fake = faker.Faker()

    name = fake.word()
    start_date = fake.date_object()
    end_date = start_date + datetime.timedelta(days=2)
    competitors = [
        helpers.create_competitor(storage),
        helpers.create_competitor(storage),
    ]

    tournament = storage.tournament.create(
        name=name,
        start_date=start_date,
        end_date=end_date,
        competitors=competitors,
    )

    assert tournament.name == name
    assert tournament.start_date == start_date
    assert tournament.end_date == end_date
    assert tournament.competitors == competitors
    assert tournament.id is not None
Exemple #11
0
def test_save_saves_competitors(storage):
    phase = create_phase(storage)

    competitors = [create_competitor(storage) for _ in range(0, 2)]

    for lot, competitor in enumerate(competitors):
        phase.competitors.append(competitor, pool=1, lot=lot)

    phase = storage.phase.save(phase)

    for lot, (actual, expected) in enumerate(
            itertools.zip_longest(
                phase.competitors,
                competitors,
            )):
        assert isinstance(actual, phase_entities.Competitor)
        assert actual.id == expected.id
        assert actual.first_name == expected.first_name
        assert actual.last_name == expected.last_name

    loaded = storage.phase.load(phase.id)
    assert loaded.competitors == phase.competitors

    competitors.pop(0)
    phase.competitors.pop(0)
    phase = storage.phase.save(phase)

    for actual, expected in itertools.zip_longest(
            phase.competitors,
            competitors,
    ):
        assert isinstance(actual, phase_entities.Competitor)
        assert actual.id == expected.id
        assert actual.first_name == expected.first_name
        assert actual.last_name == expected.last_name

    loaded = storage.phase.load(phase.id)
    assert loaded.competitors == phase.competitors
Exemple #12
0
def competitor(storage):
    return helpers.create_competitor(storage)