def test_2013flbr(self): with open('test_data/usfirst_html/usfirst_event_details_2013flbr.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'America/New_York')
def postUpdateHook(cls, events, updated_attr_list, is_new_list): """ To run after models have been updated """ for (event, updated_attrs) in zip(events, updated_attr_list): try: if event.within_a_day and "alliance_selections_json" in updated_attrs: # Send updated alliances notification logging.info( "Sending alliance notifications for {}".format( event.key_name)) NotificationHelper.send_alliance_update(event) except Exception: logging.error( "Error sending alliance update notification for {}".format( event.key_name)) logging.error(traceback.format_exc()) try: event.timezone_id = EventHelper.get_timezone_id( event.location, event.key.id()) cls.createOrUpdate(event, run_post_update_hook=False) except Exception: logging.warning("Timezone update for event {} failed!".format( event.key_name)) # Enqueue task to calculate district points for event in events: taskqueue.add(url='/tasks/math/do/district_points_calc/{}'.format( event.key.id()), method='GET')
def postUpdateHook(cls, events, updated_attr_list, is_new_list): """ To run after models have been updated """ for (event, updated_attrs) in zip(events, updated_attr_list): try: if event.within_a_day and "alliance_selections_json" in updated_attrs: # Send updated alliances notification logging.info("Sending alliance notifications for {}".format(event.key_name)) NotificationHelper.send_alliance_update(event) except Exception: logging.error("Error sending alliance update notification for {}".format(event.key_name)) logging.error(traceback.format_exc()) try: event.timezone_id = EventHelper.get_timezone_id(event.location, event.key.id()) cls.createOrUpdate(event, run_post_update_hook=False) except Exception: logging.warning("Timezone update for event {} failed!".format(event.key_name)) # Enqueue task to calculate district points for event in events: taskqueue.add( url='/tasks/math/do/district_points_calc/{}'.format(event.key.id()), method='GET')
def test_2002sj(self): with open('test_data/usfirst_html/usfirst_event_details_2002sj.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'America/Los_Angeles')
def getEventDetails(self, year, first_eid): if type(year) is not int: raise TypeError("year must be an integer") url = self.EVENT_DETAILS_URL_PATTERN % (first_eid) event, _ = self.parse(url, UsfirstLegacyEventDetailsParser, self.getSessionKey(year)) if event is None: return None return Event(id=str(event["year"]) + str.lower(str(event["event_short"])), end_date=event.get("end_date", None), event_short=event.get("event_short", None), event_type_enum=event.get("event_type_enum", None), first_eid=first_eid, name=event.get("name", None), short_name=event.get("short_name", None), official=True, start_date=event.get("start_date", None), venue_address=event.get("venue_address", None), location=event.get("location", None), timezone_id=EventHelper.get_timezone_id( event.get("location", None), '{}{}'.format(event['year'], event['event_short'])), website=event.get("website", None), year=event.get("year", None))
def test_2012ct_bad_location(self): with open('test_data/usfirst_html/usfirst_event_details_2012ct.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) event['location'] = "somewhere on mars" self.assertEqual( EventHelper.get_timezone_id( event['location'], '{}{}'.format(event['year'], event['event_short'])), None)
def postUpdateHook(cls, events): """ To run after models have been updated """ for event in events: try: event.timezone_id = EventHelper.get_timezone_id(event.location, event.key.id()) cls.createOrUpdate(event, run_post_update_hook=False) except Exception: logging.warning("Timezone update for event {} failed!".format(event.key.id()))
def test_2005or(self): with open('test_data/usfirst_html/usfirst_event_details_2005or.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual( EventHelper.get_timezone_id( event['location'], '{}{}'.format(event['year'], event['event_short'])), 'America/Los_Angeles')
def postUpdateHook(cls, events): """ To run after models have been updated """ for event in events: try: event.timezone_id = EventHelper.get_timezone_id( event.location, event.key.id()) cls.createOrUpdate(event, run_post_update_hook=False) except Exception: logging.warning("Timezone update for event {} failed!".format( event.key.id()))
def postUpdateHook(cls, events, updated_attr_list, is_new_list): """ To run after models have been updated """ for (event, updated_attrs) in zip(events, updated_attr_list): try: event.timezone_id = EventHelper.get_timezone_id(event.location, event.key.id()) cls.createOrUpdate(event, run_post_update_hook=False) except Exception: logging.warning("Timezone update for event {} failed!".format(event.key_name)) # Enqueue task to calculate district points for event in events: taskqueue.add( url='/tasks/math/do/district_points_calc/{}'.format(event.key.id()), method='GET')
def postUpdateHook(cls, events, updated_attr_list, is_new_list): """ To run after models have been updated """ for (event, updated_attrs) in zip(events, updated_attr_list): try: event.timezone_id = EventHelper.get_timezone_id( event.location, event.key.id()) cls.createOrUpdate(event, run_post_update_hook=False) except Exception: logging.warning("Timezone update for event {} failed!".format( event.key_name)) # Enqueue task to calculate district points for event in events: taskqueue.add(url='/tasks/math/do/district_points_calc/{}'.format( event.key.id()), method='GET')
def getEventDetails(self, first_eid): url = self.EVENT_DETAILS_URL_PATTERN % (first_eid) event, _ = self.parse(url, UsfirstEventDetailsParser) if event is None: return None return Event(id=str(event["year"]) + str.lower(str(event["event_short"])), end_date=event.get("end_date", None), event_short=event.get("event_short", None), event_type_enum=event.get("event_type_enum", None), first_eid=first_eid, name=event.get("name", None), short_name=event.get("short_name", None), official=True, start_date=event.get("start_date", None), venue_address=event.get("venue_address", None), venue=event.get("venue", None), location=event.get("location", None), timezone_id=EventHelper.get_timezone_id(event), website=event.get("website", None), year=event.get("year", None))
def getEventDetails(self, first_eid): url = self.EVENT_DETAILS_URL_PATTERN % (first_eid) event, _ = self.parse(url, UsfirstEventDetailsParser) if event is None: return None return Event( id=str(event["year"]) + str.lower(str(event["event_short"])), end_date=event.get("end_date", None), event_short=event.get("event_short", None), event_type_enum=event.get("event_type_enum", None), first_eid=first_eid, name=event.get("name", None), short_name=event.get("short_name", None), official=True, start_date=event.get("start_date", None), venue_address=event.get("venue_address", None), venue=event.get("venue", None), location=event.get("location", None), timezone_id=EventHelper.get_timezone_id(event.get("location", None), '{}{}'.format(event['year'], event['event_short'])), website=event.get("website", None), year=event.get("year", None) )
def getEventDetails(self, year, first_eid): if type(year) is not int: raise TypeError("year must be an integer") url = self.EVENT_DETAILS_URL_PATTERN % (first_eid) event, _ = self.parse(url, UsfirstLegacyEventDetailsParser) if event is None: return None return Event( id=str(event["year"]) + str.lower(str(event["event_short"])), end_date=event.get("end_date", None), event_short=event.get("event_short", None), event_type_enum=event.get("event_type_enum", None), first_eid=first_eid, name=event.get("name", None), short_name=event.get("short_name", None), official=True, start_date=event.get("start_date", None), venue_address=event.get("venue_address", None), location=event.get("location", None), timezone_id=EventHelper.get_timezone_id(event), website=event.get("website", None), year=event.get("year", None) )
def test_2002sj(self): with open('test_data/usfirst_html/usfirst_event_details_2002sj.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event['location'], '{}{}'.format(event['year'], event['event_short'])), 'America/Los_Angeles')
def test_2005is(self): with open('test_data/usfirst_html/usfirst_event_details_2005is.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'Asia/Jerusalem')
def test_2012ct_bad_location(self): with open('test_data/usfirst_html/usfirst_event_details_2012ct.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) event['location'] = "somewhere on mars" self.assertEqual(EventHelper.get_timezone_id(event['location'], '{}{}'.format(event['year'], event['event_short'])), None)
def test_2005is(self): with open('test_data/usfirst_html/usfirst_event_details_2005is.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event['location'], '{}{}'.format(event['year'], event['event_short'])), 'Asia/Jerusalem')
def test_2005is(self): with open('test_data/usfirst_html/usfirst_event_details_2005is.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'Asia/Jerusalem')
def test_2013flbr(self): with open('test_data/usfirst_html/usfirst_event_details_2013flbr.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'America/New_York')
def test_1997il(self): with open('test_data/usfirst_html/usfirst_event_details_1997il.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'America/Chicago')
def test_2002sj(self): with open('test_data/usfirst_html/usfirst_event_details_2002sj.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'America/Los_Angeles')
def test_2012ct_no_location(self): with open('test_data/usfirst_html/usfirst_event_details_2012ct.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) event['location'] = None self.assertEqual(EventHelper.get_timezone_id(event), None)
def test_2012ct_no_location(self): with open('test_data/usfirst_html/usfirst_event_details_2012ct.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) event['location'] = None self.assertEqual(EventHelper.get_timezone_id(event), None)
def test_1997il(self): with open('test_data/usfirst_html/usfirst_event_details_1997il.html', 'r') as f: event, _ = UsfirstEventDetailsParser.parse(f.read()) self.assertEqual(EventHelper.get_timezone_id(event), 'America/Chicago')