def test_is_valid_event(self): """Make sure event is correctly formatted""" fake_event = { "id" : "haha", "content" : [] } self.assertRaises(KeyError, lambda:is_valid_event({})) self.assertRaises(AssertionError, lambda:is_valid_event(fake_event)) normal_event = new_event("create", {}) is_valid_event(normal_event)
def test_event_save_user(self): """User name should be saved""" game_content = { "title" : "test game"} event = make_create_event(game_content, user=self.user_email) self.assertEquals( is_valid_event(event), True) self.assertEquals( event["user"], self.user_email) new_game_content = { "title" : "My test game"} event = make_update_event(game_content, new_game_content, user=self.user_email) self.assertEquals(event["type"], "update") self.assertEquals( is_valid_event(event), True) self.assertEquals( event["user"], self.user_email)
def test_make_update_state_event(self): # create a basic game and update it game_content = {"title": "test game", "state": "needs_review"} # update the game event = make_update_state_event(game_content, "needs_review") self.assertEquals(is_valid_event(event), True) self.assertEquals(event["type"], "change_state") self.assertEquals(event["content"]["to"], "needs_review") self.assertEquals(event["content"]["from"], "needs_review")
def test_make_create_event(self): """Check that content is created properly""" # return empty value when content is empty empty_content = make_create_event({}) self.assertEquals(empty_content, None) game_content = { "title" : "test game"} event = make_create_event(game_content) self.assertEquals( is_valid_event(event), True) self.assertEquals( event["type"], "create") self.assertEquals( event["content"], game_content)
def test_update_content(self): """Content update should be stored using ISO json diff""" # create a basic game and update it game_content = { "title" : "test game"} new_game_content = { "title" : "My test game"} creation = make_create_event(game_content) created_game = add_event_to_history({}, creation) # update the game event = make_update_event(new_game_content, game_content) self.assertEquals(is_valid_event(event), True) self.assertEquals(event["type"], "update") self.assertEquals(type(event["content"]["changes"]), list) self.assertEquals(len(event["content"]["changes"]), 1) self.assertEquals(event["content"]["changes"][0]["value"], "My test game") self.assertEquals(event["content"]["changes"][0]["op"], "replace")
with app.app_context(): games = get_content_index() # read all json file and check for errors for game in games: game_path = os.path.join(config["data_dir"], game['slug']) info = read_content(game_path) try: flagged = False history = info["history"] for event in history: try: if not is_valid_event(event): flagged = True except AssertionError: flagged = True if flagged: needs_update.append(game_path) except KeyError: # files with no history needs_update.append(game_path) print "%s/%s games history need to be updated." % (len(needs_update), len(games)) if not len(needs_update): print "No updates needed." exit()