def get_context(cursor, player_id, last_active): game_ids = aggregate.get_player_game_ids(cursor, player_id) game_activities = aggregate.get_game_activities(cursor, game_ids, player_id, happened_since=last_active) available_games = aggregate.get_available_games(cursor, created_since=last_active, exclude_game_ids=game_ids) completed_games = aggregate.get_completed_games(cursor, completed_since=last_active, exclude_game_ids=game_ids) context = {'game_activities': game_activities, 'available_games': available_games, 'completed_games': completed_games} return context
def get_context(cursor, player_id, game_ids, last_active): game_activities = aggregate.get_game_activities(cursor, game_ids, player_id, happened_since=last_active) available_games = aggregate.get_available_games(cursor, created_since=last_active, exclude_game_ids=game_ids) completed_games = aggregate.get_completed_games(cursor, completed_since=last_active, exclude_game_ids=game_ids) unsubscribe_path = reverse(website.cardstories.views.activity_notifications_unsubscribe) context = {'game_activities': game_activities, 'available_games': available_games, 'completed_games': completed_games, 'unsubscribe_path': unsubscribe_path} return context
def test04_get_completed_games(self): c = self.db.cursor() owner_id = 42 # Define some datetimes. now = datetime.now() an_hour_ago = now - timedelta(hours=1) yesterday = now - timedelta(days=1) two_days_ago = now - timedelta(days=2) three_days_ago = now - timedelta(days=3) # Seed the playerid2name data. aggregate.seed_playerid2name([(owner_id, '*****@*****.**', 'John Johnson', False)]) # Create some games. sql = 'INSERT INTO games (id, owner_id, state, sentence, created) VALUES (?, ?, ?, ?, ?)' games = [ [1, 'invitation', 'Story 1', three_days_ago], [2, 'create', '', two_days_ago], [3, 'complete', 'Story 3', yesterday], [4, 'voting', 'Story 4', yesterday], [5, 'canceled', 'Story 5', an_hour_ago], [6, 'complete', 'Story 6', an_hour_ago], [7, 'invitation', 'Story 7', now], ] for game in games: c.execute(sql, [game[0], owner_id, game[1], game[2], game[3]]) # Fetching completed games since two days ago should yeild two results. result = aggregate.get_completed_games(c, two_days_ago) self.assertEquals(len(result), 2) self.assertEquals(result[0]['game_id'], 3) self.assertEquals(result[0]['owner_name'], 'John Johnson') self.assertEquals(result[0]['sentence'], 'Story 3') self.assertEquals(result[1]['game_id'], 6) self.assertEquals(result[1]['owner_name'], 'John Johnson') self.assertEquals(result[1]['sentence'], 'Story 6') # Fetching completed games since three days ago should again yeild two results, # but we are excluding one of them with the third optional parameter, # so there should be only one game in the result. result = aggregate.get_available_games(c, three_days_ago, [1, 4, 888]) self.assertEquals(len(result), 1) self.assertEquals(result[0]['game_id'], 7) self.assertEquals(result[0]['owner_name'], 'John Johnson') self.assertEquals(result[0]['sentence'], 'Story 7')
def test04_get_completed_games(self): c = self.db.cursor() owner_id = 42 # Define some datetimes. now = datetime.now() an_hour_ago = now - timedelta(hours=1) yesterday = now - timedelta(days=1) two_days_ago = now - timedelta(days=2) three_days_ago = now - timedelta(days=3) # Seed the playerid2name data. aggregate.seed_playerid2name([(owner_id, '*****@*****.**', 'John Johnson')]) # Create some games. sql = 'INSERT INTO games (id, owner_id, state, sentence, created) VALUES (?, ?, ?, ?, ?)' games = [ [1, 'invitation', 'Story 1', three_days_ago], [2, 'create', '', two_days_ago], [3, 'complete', 'Story 3', yesterday], [4, 'voting', 'Story 4', yesterday], [5, 'canceled', 'Story 5', an_hour_ago], [6, 'complete', 'Story 6', an_hour_ago], [7, 'invitation', 'Story 7', now], ] for game in games: c.execute(sql, [game[0], owner_id, game[1], game[2], game[3]]) # Fetching completed games since two days ago should yeild two results. result = aggregate.get_completed_games(c, two_days_ago) self.assertEquals(len(result), 2) self.assertEquals(result[0]['game_id'], 3) self.assertEquals(result[0]['owner_name'], 'John Johnson') self.assertEquals(result[0]['sentence'], 'Story 3') self.assertEquals(result[1]['game_id'], 6) self.assertEquals(result[1]['owner_name'], 'John Johnson') self.assertEquals(result[1]['sentence'], 'Story 6') # Fetching completed games since three days ago should again yeild two results, # but we are excluding one of them with the third optional parameter, # so there should be only one game in the result. result = aggregate.get_available_games(c, three_days_ago, [1, 4, 888]) self.assertEquals(len(result), 1) self.assertEquals(result[0]['game_id'], 7) self.assertEquals(result[0]['owner_name'], 'John Johnson') self.assertEquals(result[0]['sentence'], 'Story 7')
def get_context(cursor, player_id, game_ids, last_active): game_activities = aggregate.get_game_activities(cursor, game_ids, player_id, happened_since=last_active) available_games = aggregate.get_available_games(cursor, created_since=last_active, exclude_game_ids=game_ids) completed_games = aggregate.get_completed_games( cursor, completed_since=last_active, exclude_game_ids=game_ids) unsubscribe_path = reverse( website.cardstories.views.activity_notifications_unsubscribe) context = { 'game_activities': game_activities, 'available_games': available_games, 'completed_games': completed_games, 'unsubscribe_path': unsubscribe_path } return context