Exemple #1
0
    def importRecord(self, record):
        self.log.message('\nImporting record:\n  ' + str(record))

        for item in record['NewEvents']:
            self.log.message(str(item))

            # Skip over items
            if item is False:
                self.log.message('Skipping FALSE item')
                continue

            e = GameEvent()
            e.connectDB()

            eventID = e.lookupID(item, self.log)

            if (len(eventID) > 1):
                # We have more than one record of this player/team/game/minute.
                # This is a problem.
                self.log.message('Error: ' +
                                 str(len(eventID)) +
                                 ' events found during lookup')
                self.errored += 1
            elif (len(eventID) == 1):
                # We already have a record of this event.
                # We add that eventID to ensure an update.
                item['ID'] = eventID[0]
                e.saveDict(item, self.log)
                self.updated += 1
            else:
                e.saveDict(item, self.log)
                self.imported += 1

        return True
def test_gameevent_saveDict():
    log = Log('test.log')
    ge = GameEvent()
    ge.connectDB()

    # Formats
    with pytest.raises(RuntimeError) as excinfo:
        data = 'foo'
        ge.saveDict(data, log)
    assert 'saveDict requires a dictionary' in str(excinfo.value)

    # Insert dummy data
    data = {
        'GameID': 1,
        'TeamID': 1,
        'PlayerID': 1,
        'MinuteID': 1,
        'Event': 1,
        'Notes': 'DeleteMe'
    }
    assert ge.saveDict(data, log) is True
    assert ge.db.warnings() is None

    # Updates
    data = {
        'ID': 2,
        'GameID': 0,
        'TeamID': 0,
        'PlayerID': 0,
        'MinuteID': 0,
        'Event': 0,
        'Notes': 'EditMe'
    }
    assert ge.saveDict(data, log) is True
    assert ge.db.warnings() is None

    # Delete dummy data
    sql = "DELETE FROM tbl_gameevents WHERE Notes = 'DeleteMe'"
    ge.db.query(sql, ())