Exemple #1
0
def national_data():
    mexico = mco.Countries(name=u"Mexico",
                           confederation=enums.ConfederationType.north_america)
    england = mco.Countries(name=u"England",
                            confederation=enums.ConfederationType.europe)
    france = mco.Countries(name=u"France",
                           confederation=enums.ConfederationType.europe)
    italy = mco.Countries(name=u"Italy",
                          confederation=enums.ConfederationType.europe)
    tz_london = mco.Timezones(name=u"Europe/London",
                              offset=0.0,
                              confederation=enums.ConfederationType.europe)
    return {
        'date':
        date(1997, 11, 12),
        'competition':
        mco.InternationalCompetitions(
            name=u"International Cup",
            level=1,
            confederation=enums.ConfederationType.fifa),
        'season':
        mco.Seasons(start_year=mco.Years(yr=1997),
                    end_year=mco.Years(yr=1998)),
        'venue':
        mco.Venues(name=u"Emirates Stadium",
                   city=u"London",
                   country=england,
                   timezone=tz_london),
        'home_team':
        france,
        'away_team':
        mexico,
        'home_manager':
        mcp.Managers(first_name=u"Arsène",
                     last_name=u"Wenger",
                     birth_date=date(1949, 10, 22),
                     country=france),
        'away_manager':
        mcp.Managers(first_name=u"Gary",
                     last_name=u"Simpson",
                     birth_date=date(1961, 4, 11),
                     country=england),
        'referee':
        mcp.Referees(first_name=u"Pierluigi",
                     last_name=u"Collina",
                     birth_date=date(1960, 2, 13),
                     country=italy)
    }
Exemple #2
0
    def managers(self, data_frame):
        manager_records = []
        remote_ids = []
        local_ids = []
        fields = ['known_first_name', 'first_name', 'middle_name', 'last_name', 'second_last_name',
                  'nick_name', 'birth_date', 'order', 'country_id']
        for indx, row in data_frame.iterrows():
            manager_dict = {field: row[field] for field in fields if field in row and row[field]}
            if not self.record_exists(mcs.ManagerMap, remote_id=row['remote_id']):
                if not self.record_exists(mcp.Managers, **manager_dict):
                    manager_dict.update(id=uuid.uuid4(), person_id=uuid.uuid4())
                    manager_records.append(mcp.Managers(**manager_dict))
                    local_ids.append(manager_dict['id'])
                    remote_ids.append(row['remote_id'])
                else:
                    manager_id = self.session.query(mcp.Managers).filter_by(**manager_dict).one().id
                    local_ids.append(manager_id)
                    remote_ids.append(row['remote_id'])
            else:
                manager_id = self.session.query(mcs.ManagerMap).filter_by(remote_id=row['remote_id']).one().id
                if not self.record_exists(mcp.Managers, **manager_dict):
                    updated_records = self.session.query(mcp.Managers).\
                        filter(mcp.Managers.person_id == mcp.Persons.person_id).\
                        filter(mcp.Managers.id == manager_id)
                    for rec in updated_records:
                        for field, value in manager_dict.items():
                            setattr(rec, field, value)
        if self.session.dirty:
            self.session.commit()

        self.session.bulk_save_objects(manager_records)
        map_records = [mcs.ManagerMap(id=local_id, remote_id=remote_id, supplier_id=self.supplier_id)
                       for remote_id, local_id in zip(remote_ids, local_ids) if remote_id]
        self.session.bulk_save_objects(map_records)
        self.session.commit()
Exemple #3
0
def match_data(comp_data, season_data, venue_data, person_data):
    return {
        "date":
        date(2012, 12, 12),
        "competition":
        mco.DomesticCompetitions(**comp_data['domestic']),
        "season":
        mco.Seasons(**{k: mco.Years(**v)
                       for k, v in season_data.items()}),
        "venue":
        mco.Venues(**venue_data),
        "home_manager":
        mcp.Managers(**person_data['manager'][0]),
        "away_manager":
        mcp.Managers(**person_data['manager'][1]),
        "referee":
        mcp.Referees(**person_data['referee'][0])
    }
Exemple #4
0
def club_data():
    england = mco.Countries(name=u"England",
                            confederation=enums.ConfederationType.europe)
    france = mco.Countries(name=u"France",
                           confederation=enums.ConfederationType.europe)
    tz_london = mco.Timezones(name=u"Europe/London",
                              offset=0.0,
                              confederation=enums.ConfederationType.europe)
    return {
        'date':
        date(2015, 1, 1),
        'competition':
        mco.DomesticCompetitions(name=u'Test Competition',
                                 level=1,
                                 country=england),
        'season':
        mco.Seasons(start_year=mco.Years(yr=2014),
                    end_year=mco.Years(yr=2015)),
        'venue':
        mco.Venues(name=u"Emirates Stadium",
                   city=u"London",
                   country=england,
                   timezone=tz_london),
        'home_team':
        mc.Clubs(name=u"Arsenal FC", country=england),
        'away_team':
        mc.Clubs(name=u"Lincoln City FC", country=england),
        'home_manager':
        mcp.Managers(first_name=u"Arsène",
                     last_name=u"Wenger",
                     birth_date=date(1949, 10, 22),
                     country=france),
        'away_manager':
        mcp.Managers(first_name=u"Gary",
                     last_name=u"Simpson",
                     birth_date=date(1961, 4, 11),
                     country=england),
        'referee':
        mcp.Referees(first_name=u"Mark",
                     last_name=u"Clattenburg",
                     birth_date=date(1975, 3, 13),
                     country=england)
    }
def test_manager_representation(session, person_data):
    manager_data = [mcp.Managers(**data) for key, records in person_data.items()
                    for data in records if key in ['manager']]
    session.add_all(manager_data)

    zico = session.query(mcp.Managers).filter(mcp.Managers.full_name == u"Zico").one()
    assert repr(zico) == u"<Manager(name=Zico, DOB=1953-03-03, country=Brazil)>"

    wenger = session.query(mcp.Managers).filter(mcp.Managers.last_name == u"Wenger").one()
    assert unicode(wenger) == u"<Manager(name=Arsène Wenger, DOB=1949-10-22, country=France)>"
def test_manager_insert(session, person_data):
    manager_data = [mcp.Managers(**data) for key, records in person_data.items()
                    for data in records if key in ['manager']]
    session.add_all(manager_data)

    managers_from_db = session.query(mcp.Managers)
    assert managers_from_db.count() == len(manager_data)

    persons_from_db = session.query(mcp.Persons)
    assert persons_from_db.count() == managers_from_db.count()