def test_load_dict(self):
        BaseModel.FIELDS = {
            0: 'guid',
            1: 'name',
            2: 'hats'
        }

        dict_data = {'guid': 'blah', 'name': 'sure', 'hats': False}

        test_model = BaseModel()
        test_model.load(dict_data)

        for key in dict_data:
            self.assertEqual(getattr(test_model, key), dict_data[key], 'Loaded data does not match data from source')
    def test_load_list(self):
        BaseModel.FIELDS = {
            0: 'guid',
            1: 'name',
            2: 'hats'
        }

        row_data = ['29f4de658', 'wat', False]

        test_model = BaseModel()
        test_model.load(row_data)

        self.assertEqual(test_model.guid, row_data[0], 'Loaded data does not match data from source')
        self.assertEqual(test_model.name, row_data[1], 'Loaded data does not match data from source')
        self.assertEqual(test_model.hats, row_data[2], 'Loaded data does not match data from source')
    def test_load_ignore_unknown_fields(self):
        BaseModel.FIELDS = {
            0: 'guid',
            1: 'name',
            2: 'hats'
        }

        dict_data = {'guid': 'blah', 'name': 'sure', 'hats': False, 'banana': 'hammock', 'number': 24387}

        test_model = BaseModel()
        test_model.load(dict_data)

        self.assertEqual(test_model.guid, dict_data['guid'], 'Loaded data does not match data from source')
        self.assertEqual(test_model.name, dict_data['name'], 'Loaded data does not match data from source')
        self.assertEqual(test_model.hats, dict_data['hats'], 'Loaded data does not match data from source')
        self.assertFalse(hasattr(test_model, 'banana'), 'Loaded an unknown field that we should not have')
        self.assertFalse(hasattr(test_model, 'number'), 'Loaded an unknown field that we should not have')