Exemple #1
0
    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)
Exemple #2
0
    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")
Exemple #4
0
    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)
Exemple #5
0
    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")
Exemple #6
0
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()