コード例 #1
0
def test_referee_insert(session, person_data):
    referees = [
        mcp.Referees(**data) for key, records in person_data.items()
        for data in records if key in ['referees']
    ]
    session.add_all(referees)

    referees_from_db = session.query(mcp.Referees)
    assert referees_from_db.count() == len(referees)

    persons_from_db = session.query(mcp.Persons)
    assert persons_from_db.count() == referees_from_db.count()
コード例 #2
0
ファイル: load.py プロジェクト: lkh/marcotti
    def referees(self, data_frame):
        referee_records = []
        remote_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():
            referee_dict = {
                field: row[field]
                for field in fields if field in row and row[field]
            }
            if not self.record_exists(mcs.RefereeMap,
                                      remote_id=row['remote_id']):
                if not self.record_exists(mcp.Referees, **referee_dict):
                    referee_records.append(mcp.Referees(**referee_dict))
                    remote_ids.append(row['remote_id'])
                else:
                    referee_id = self.session.query(
                        mcp.Referees).filter_by(**referee_dict).one().id
                    map_record = mcs.RefereeMap(id=referee_id,
                                                remote_id=row['remote_id'],
                                                supplier_id=self.supplier_id)
                    self.session.add(map_record)
            else:
                referee_id = self.session.query(mcs.RefereeMap).filter_by(
                    remote_id=row['remote_id']).one().id
                if not self.record_exists(mcp.Referees, **referee_dict):
                    updated_records = self.session.query(mcp.Referees). \
                        filter(mcp.Referees.person_id == mcp.Persons.person_id). \
                        filter(mcp.Referees.id == referee_id)
                    for rec in updated_records:
                        for field, value in referee_dict.items():
                            setattr(rec, field, value)
        if self.session.dirty:
            self.session.commit()

        self.session.add_all(referee_records)
        self.session.commit()
        map_records = [
            mcs.RefereeMap(id=referee_record.id,
                           remote_id=remote_id,
                           supplier_id=self.supplier_id)
            for remote_id, referee_record in zip(remote_ids, referee_records)
            if remote_id
        ]
        self.session.add_all(map_records)
        self.session.commit()
コード例 #3
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)
    }
コード例 #4
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])
    }
コード例 #5
0
def test_referee_representation(session, person_data):
    referees = [
        mcp.Referees(**data) for key, records in person_data.items()
        for data in records if key in ['referee']
    ]
    session.add_all(referees)

    english_referee = session.query(mcp.Referees).join(
        mco.Countries).filter(mco.Countries.name == u"England").one()
    assert unicode(
        english_referee
    ) == u"<Referee(name=Christopher Foy, DOB=1962-11-20, country=England)>"

    turkish_referee = session.query(mcp.Referees).join(
        mco.Countries).filter(mco.Countries.name == u"Turkey").one()
    assert unicode(
        turkish_referee
    ) == u"<Referee(name=Cüneyt Çakır, DOB=1976-11-23, country=Turkey)>"
コード例 #6
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)
    }