class TestListOfFixtures(testing.TestCase): def setUp(self): self.fm = FixturesManager() self.fm.load('./charlatan/tests/data/lists.yaml') def test_get_list_by_name(self): """Verify that lists of fixtures returns lists""" fixtures = self.fm.install_fixture('fixture_list') self.assertIsInstance(fixtures, list) def test_one_to_many_relationship(self): """Verify that relations to lists of fixtures work""" fixture = self.fm.install_fixture('related_fixture') self.assertEqual( fixture['elements'], self.fm.install_fixture('fixture_list') ) def test_override(self): """Verify that we can override attributes on a list of fixtures.""" fixtures = self.fm.install_fixture('fixture_list', overrides={"field1": 12}) assert list(map(op.itemgetter('field1'), fixtures)) == [12, 12]
def test_overrides_and_in_cache(): manager = FixturesManager() manager.load('./docs/examples/simple_fixtures.yaml') # Add it to the cache manager.install_fixture("toaster") toaster = manager.install_fixture("toaster", overrides={"color": "blue"}) assert toaster.color == 'blue'
def test_uninstall_fixture(self): manager = FixturesManager() manager.load( './charlatan/tests/data/relationships_without_models.yaml') manager.install_fixture('simple_dict') manager.uninstall_fixture('simple_dict') # verify we are forgiving with list inputs manager.install_fixtures('simple_dict') manager.uninstall_fixtures('simple_dict')
class TestSqlalchemyFixtures(testing.TestCase): def setUp(self): self.session = Session() self.manager = FixturesManager(db_session=self.session) self.manager.load("./charlatan/tests/data/relationships.yaml") Base.metadata.create_all(engine) def tearDown(self): Base.metadata.drop_all(engine) self.session.close() def test_double_install(self): """Verify that there's no double install.""" self.manager.install_fixture("model") self.manager.install_fixture("color") self.assertEqual(self.session.query(Toaster).count(), 1) self.assertEqual(self.session.query(Color).count(), 1) def test_getting_from_database(self): """Verify that we can get from the database.""" installed = Toaster(id=1) self.session.add(installed) self.session.commit() toaster = self.manager.install_fixture("from_database") self.assertEqual(toaster.id, 1) def test_installing_collection(self): """Verify that a collection of fixtures is in the database.""" self.manager.install_fixture("model_list") self.assertEqual(self.session.query(Toaster).count(), 2) def test_inheritance_and_relationship(self): """Verify that inheritance works with relationships.""" model, model_1 = self.manager.install_fixtures(('model', 'model_1')) self.assertTrue(isinstance(model.color, Color)) self.assertTrue(isinstance(model_1.color, Color)) def test_explicit_foreign_key(self): """Verify that we can get a db-computed foreign key explicitely.""" model = self.manager.install_fixture('model_with_explicit_fk') assert model.color_id is not None def test_uninstall_deletes_fixtures(self): """Verify uninstalling a fixture drops it from the database.""" self.manager.install_fixture("color") # sanity check self.assertEqual(self.session.query(Color).count(), 1) self.manager.uninstall_fixture("color") self.assertEqual(self.session.query(Color).count(), 0)
class TestSqlalchemyFixtures(testing.TestCase): def setUp(self): self.session = Session() self.manager = FixturesManager(db_session=self.session) self.manager.load("./charlatan/tests/data/relationships.yaml") Base.metadata.create_all(engine) def tearDown(self): Base.metadata.drop_all(engine) self.session.close() def test_double_install(self): """Verify that there's no double install.""" self.manager.install_fixture("model") self.manager.install_fixture("color") self.assertEqual(self.session.query(Toaster).count(), 1) self.assertEqual(self.session.query(Color).count(), 1) def test_getting_from_database(self): """Verify that we can get from the database.""" installed = Toaster(id=1) self.session.add(installed) self.session.commit() toaster = self.manager.install_fixture("from_database") self.assertEqual(toaster.id, 1) def test_installing_collection(self): """Verify that a collection of fixtures is in the database.""" self.manager.install_fixture("model_list") self.assertEqual(self.session.query(Toaster).count(), 2) def test_inheritance_and_relationship(self): """Verify that inheritance works with relationships.""" model, model_1 = self.manager.install_fixtures(('model', 'model_1')) self.assertTrue(isinstance(model.color, Color)) self.assertTrue(isinstance(model_1.color, Color)) def test_explicit_foreign_key(self): """Verify that we can get a db-computed foreign key explicitely.""" model = self.manager.install_fixture('model_with_explicit_fk') assert model.color_id is not None def test_uninstall_deletes_fixtures(self): """Verify uninstalling a fixture drops it from the database.""" self.manager.install_fixture("color") # sanity check self.assertEqual(self.session.query(Color).count(), 1) self.manager.uninstall_fixture("color") self.assertEqual(self.session.query(Color).count(), 0)
def test_install_fixture_with_now(self): """Verify that we can install a fixture with !now tag.""" manager = FixturesManager() manager.load('./charlatan/tests/data/simple.yaml') fixture = manager.install_fixture('fixture') self.assertEqual(fixture, {'now': datetime(2014, 12, 30, 11, 0, tzinfo=pytz.utc)})
class TestSqlalchemyFixtures(testing.TestCase): def setUp(self): self.session = Session() self.manager = FixturesManager(db_session=self.session) self.manager.load("./charlatan/tests/data/relationships.yaml") Base.metadata.create_all(engine) def tearDown(self): Base.metadata.drop_all(engine) self.session.close() def test_double_install(self): """Verify that there's no double install.""" self.manager.install_fixture("model") self.manager.install_fixture("relationship_alone") self.assertEqual(self.session.query(Toaster).count(), 1) self.assertEqual(self.session.query(Color).count(), 1) def test_getting_from_database(self): """Verify that we can get from the database.""" installed = Toaster(id=1) self.session.add(installed) self.session.commit() toaster = self.manager.install_fixture("from_database") self.assertEqual(toaster.id, 1) def test_installing_collection(self): """Verify that a collection of fixtures is in the database""" self.manager.install_fixture("model_list") self.assertEqual(self.session.query(Toaster).count(), 2)
def test_install_fixture(self): """install_fixture should return the fixture.""" manager = FixturesManager() manager.load( './charlatan/tests/data/relationships_without_models.yaml') fixture = manager.install_fixture('simple_dict') self.assertEqual(fixture, { 'field1': 'lolin', 'field2': 2, })
class TestListOfFixtures(testing.TestCase): def setUp(self): self.fm = FixturesManager() self.fm.load('./charlatan/tests/data/lists.yaml') def test_get_list_by_name(self): """Verify that lists of fixtures returns lists.""" fixtures = self.fm.install_fixture('fixture_list') self.assertIsInstance(fixtures, list) def test_one_to_many_relationship(self): """Verify that relations to lists of fixtures work.""" fixture = self.fm.install_fixture('related_fixture') self.assertEqual(fixture['elements'], self.fm.install_fixture('fixture_list')) def test_override(self): """Verify that we can override attributes on a list of fixtures.""" fixtures = self.fm.install_fixture('fixture_list', overrides={"field1": 12}) assert list(map(op.itemgetter('field1'), fixtures)) == [12, 12]
def test_uninstall_fixture(self): """uninstall_fixture should return the fixture.""" fixtures_manager = FixturesManager() fixtures_manager.load( './charlatan/tests/data/relationships_without_models.yaml') fixtures_manager.install_fixture('simple_dict') fixture = fixtures_manager.uninstall_fixture('simple_dict') self.assertEqual(fixture, { 'field1': 'lolin', 'field2': 2, }) # verify we are forgiving with list inputs fixtures = fixtures_manager.install_fixtures('simple_dict') self.assertEqual(len(fixtures), 1) fixtures = fixtures_manager.uninstall_fixtures('simple_dict') self.assertEqual(len(fixtures), 1) self.assertEqual(fixtures[0], { 'field1': 'lolin', 'field2': 2, })
def test_install_fixture_override(self): """Verify that we can override a fixture field.""" manager = FixturesManager() manager.load('./charlatan/tests/data/simple.yaml') fixture = manager.install_fixture('fixture', overrides={'now': None}) self.assertEqual(fixture, {'now': None})