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) }
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]) }
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_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()
def managers(self, data_frame): manager_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(): 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_records.append(mcp.Managers(**manager_dict)) remote_ids.append(row['remote_id']) else: manager_id = self.session.query( mcp.Managers).filter_by(**manager_dict).one().id map_record = mcs.ManagerMap(id=manager_id, remote_id=row['remote_id'], supplier_id=self.supplier_id) self.session.add(map_record) 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.add_all(manager_records) self.session.commit() map_records = [ mcs.ManagerMap(id=manager_record.id, remote_id=remote_id, supplier_id=self.supplier_id) for remote_id, manager_record in zip(remote_ids, manager_records) if remote_id ] self.session.add_all(map_records) self.session.commit()
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)>"