def test_append_wrong_data(self):
        # Append stores
        collection = StoresCollection()

        # Exception constructor StoreInvalidDefinitionError
        with self.assertRaises(StoreInvalidDefinitionError):
            collection.append({"foo": "bar"})
    def test_append_stores(self):
        # Append stores
        store2 = Store(postcode="SN22 222", name="Store 2", lon=2, lat=2)
        store3 = Store(postcode="SN33 333", name="Store 3", lon=3, lat=3)

        # Append from constructor as array with mixed types
        collection = StoresCollection(stores=[{
            "postcode": "SN25 2EG",
            "name": "Store 1",
            "lon": 1,
            "lat": 1
        }, store2])

        # Append single record
        collection.append(store3)

        # Check assertion
        self.assertEqual(collection.stores[0].name, "Store 1")
        self.assertEqual(collection.stores[1].name, "Store 2")
        self.assertEqual(collection.stores[2].name, "Store 3")

        # Instance compare
        self.assertEqual(collection.stores[1], store2)