예제 #1
0
    def setUp(self):
        super(DbFixture, self).setUp()

        testresources.setUpResources(self.test, self.test.resources,
                                     testresources._get_result())
        self.addCleanup(testresources.tearDownResources, self.test,
                        self.test.resources, testresources._get_result())
        if not hasattr(self.test, 'db'):
            msg = "backend '%s' unavailable" % self.DRIVER
            if self.skip_on_unavailable_db:
                self.test.skip(msg)
            else:
                self.test.fail(msg)

        if self.test.SCHEMA_SCOPE:
            self.test.engine = self.test.transaction_engine
            self.test.sessionmaker = session.get_maker(
                self.test.transaction_engine)
        else:
            self.test.engine = self.test.db.engine
            self.test.sessionmaker = session.get_maker(self.test.engine)

        self.addCleanup(setattr, self.test, 'sessionmaker', None)
        self.addCleanup(setattr, self.test, 'engine', None)

        self.test.enginefacade = enginefacade._TestTransactionFactory(
            self.test.engine,
            self.test.sessionmaker,
            apply_global=True,
            synchronous_reader=True)
        self.addCleanup(self.test.enginefacade.dispose_global)
예제 #2
0
    def setUp(self):
        super(DbFixture, self).setUp()

        testresources.setUpResources(
            self.test, self.test.resources, testresources._get_result())
        self.addCleanup(
            testresources.tearDownResources,
            self.test, self.test.resources, testresources._get_result()
        )
        if not hasattr(self.test, 'db'):
            msg = "backend '%s' unavailable" % self.DRIVER
            if self.skip_on_unavailable_db:
                self.test.skip(msg)
            else:
                self.test.fail(msg)

        if self.test.SCHEMA_SCOPE:
            self.test.engine = self.test.transaction_engine
            self.test.sessionmaker = session.get_maker(
                self.test.transaction_engine)
        else:
            self.test.engine = self.test.db.engine
            self.test.sessionmaker = session.get_maker(self.test.engine)

        self.addCleanup(setattr, self.test, 'sessionmaker', None)
        self.addCleanup(setattr, self.test, 'engine', None)

        self.test.enginefacade = enginefacade._TestTransactionFactory(
            self.test.engine, self.test.sessionmaker, apply_global=True,
            synchronous_reader=True)
        self.addCleanup(self.test.enginefacade.dispose_global)
예제 #3
0
    def setUp(self):
        super(DbFixture, self).setUp()

        testresources.setUpResources(self.test, self.test.resources,
                                     testresources._get_result())
        self.addCleanup(testresources.tearDownResources, self.test,
                        self.test.resources, testresources._get_result())

        if not self.test._has_db_resource():
            msg = self.test._get_db_resource_not_available_reason()
            if self.test.SKIP_ON_UNAVAILABLE_DB:
                self.test.skipTest(msg)
            else:
                self.test.fail(msg)

        if self.test.SCHEMA_SCOPE:
            self.test.engine = self.test.transaction_engine
            self.test.sessionmaker = session.get_maker(
                self.test.transaction_engine)
        else:
            self.test.engine = self.test.db.engine
            self.test.sessionmaker = session.get_maker(self.test.engine)

        self.addCleanup(setattr, self.test, 'sessionmaker', None)
        self.addCleanup(setattr, self.test, 'engine', None)

        self.test.enginefacade = enginefacade._TestTransactionFactory(
            self.test.engine, self.test.sessionmaker, apply_global=True)
        self.addCleanup(self.test.enginefacade.dispose_global)
예제 #4
0
    def test_db_fixture(self):
        normal_mgr = enginefacade.transaction_context()
        normal_mgr.configure(connection="sqlite://",
                             sqlite_fk=True,
                             mysql_sql_mode="FOOBAR",
                             max_overflow=38)

        class MyFixture(test_fixtures.OpportunisticDbFixture):
            def get_enginefacade(self):
                return normal_mgr

        test = mock.Mock(SCHEMA_SCOPE=None)
        fixture = MyFixture(test=test)
        resources = fixture._get_resources()

        testresources.setUpResources(test, resources, None)
        self.addCleanup(testresources.tearDownResources, test, resources, None)
        fixture.setUp()
        self.addCleanup(fixture.cleanUp)

        self.assertTrue(normal_mgr._factory._started)

        test.engine = normal_mgr.writer.get_engine()
        self.assertEqual("sqlite://", str(test.engine.url))
        self.assertIs(test.engine, normal_mgr._factory._writer_engine)
        engine_args = normal_mgr._factory._engine_args_for_conf(None)
        self.assertTrue(engine_args['sqlite_fk'])
        self.assertEqual("FOOBAR", engine_args["mysql_sql_mode"])
        self.assertEqual(38, engine_args["max_overflow"])

        fixture.cleanUp()
        fixture._clear_cleanups()  # so the real cleanUp works
        self.assertFalse(normal_mgr._factory._started)
 def testSetUpResourcesMultiple(self):
     # setUpResources installs the resources listed in ResourcedTestCase.
     self.resourced_case.resources = [('foo', self.resource_manager),
                                      ('bar', MockResource('bar_resource'))]
     testresources.setUpResources(self.resourced_case,
                                  self.resourced_case.resources, None)
     self.assertEqual(self.resource, self.resourced_case.foo)
     self.assertEqual('bar_resource', self.resourced_case.bar)
 def testSetUpResourcesMultiple(self):
     # setUpResources installs the resources listed in ResourcedTestCase.
     self.resourced_case.resources = [
         ('foo', self.resource_manager),
         ('bar', MockResource('bar_resource'))]
     testresources.setUpResources(self.resourced_case,
         self.resourced_case.resources, None)
     self.assertEqual(self.resource, self.resourced_case.foo)
     self.assertEqual('bar_resource', self.resourced_case.bar)
예제 #7
0
    def _init_resources(self):
        testresources.setUpResources(self.test, self.test.resources,
                                     testresources._get_result())
        self.addCleanup(testresources.tearDownResources, self.test,
                        self.test.resources, testresources._get_result())

        # unfortunately, fixtures won't let us call a skip() from
        # here.  So the test has to check this also.
        # see https://github.com/testing-cabal/fixtures/issues/31
        if hasattr(self.test, 'db'):
            self.engine = self.test.engine = self.test.db.engine
 def testSetUpResourcesSetsUpDependences(self):
     resource = MockResourceInstance()
     self.resource_manager = MockResource(resource)
     self.resourced_case.resources = [('foo', self.resource_manager)]
     # Give the 'foo' resource access to a 'bar' resource
     self.resource_manager.resources.append(
         ('bar', MockResource('bar_resource')))
     testresources.setUpResources(self.resourced_case,
         self.resourced_case.resources, None)
     self.assertEqual(resource, self.resourced_case.foo)
     self.assertEqual('bar_resource', self.resourced_case.foo.bar)
 def testSetUpResourcesSetsUpDependences(self):
     resource = MockResourceInstance()
     self.resource_manager = MockResource(resource)
     self.resourced_case.resources = [('foo', self.resource_manager)]
     # Give the 'foo' resource access to a 'bar' resource
     self.resource_manager.resources.append(
         ('bar', MockResource('bar_resource')))
     testresources.setUpResources(self.resourced_case,
                                  self.resourced_case.resources, None)
     self.assertEqual(resource, self.resourced_case.foo)
     self.assertEqual('bar_resource', self.resourced_case.foo.bar)
예제 #10
0
    def _init_resources(self):
        testresources.setUpResources(
            self.test, self.test.resources, testresources._get_result())
        self.addCleanup(
            testresources.tearDownResources,
            self.test, self.test.resources, testresources._get_result()
        )

        # unfortunately, fixtures won't let us call a skip() from
        # here.  So the test has to check this also.
        # see https://github.com/testing-cabal/fixtures/issues/31
        if hasattr(self.test, 'db'):
            self.engine = self.test.engine = self.test.db.engine
예제 #11
0
    def _setup_fixtures(self):
        testresources.setUpResources(self, self.resources,
                                     testresources._get_result())
        self.addCleanup(testresources.tearDownResources, self, self.resources,
                        testresources._get_result())

        fixtures = self._instantiate_fixtures()
        for fixture in fixtures:
            self.useFixture(fixture)

            if not fixture._has_db_resource():
                msg = fixture._get_db_resource_not_available_reason()
                if self.SKIP_ON_UNAVAILABLE_DB:
                    self.skipTest(msg)
                else:
                    self.fail(msg)
예제 #12
0
    def _setup_fixtures(self):
        testresources.setUpResources(
            self, self.resources, testresources._get_result())
        self.addCleanup(
            testresources.tearDownResources,
            self, self.resources, testresources._get_result()
        )

        fixtures = self._instantiate_fixtures()
        for fixture in fixtures:
            self.useFixture(fixture)

            if not fixture._has_db_resource():
                msg = fixture._get_db_resource_not_available_reason()
                if self.SKIP_ON_UNAVAILABLE_DB:
                    self.skipTest(msg)
                else:
                    self.fail(msg)
예제 #13
0
    def setUp(self):
        super(DbFixture, self).setUp()

        testresources.setUpResources(
            self.test, self.test.resources, testresources._get_result())
        self.addCleanup(
            testresources.tearDownResources,
            self.test, self.test.resources, testresources._get_result()
        )
        if not hasattr(self.test, 'db'):
            self.test.skip("database '%s' unavailable" % self.DRIVER)

        if self.test.SCHEMA_SCOPE:
            self.test.engine = self.test.transaction_engine
            self.test.sessionmaker = session.get_maker(
                self.test.transaction_engine)
        else:
            self.test.engine = self.test.db.engine
            self.test.sessionmaker = session.get_maker(self.test.engine)
        self.addCleanup(setattr, self.test, 'sessionmaker', None)
        self.addCleanup(setattr, self.test, 'engine', None)
예제 #14
0
    def test_db_fixture(self):
        normal_mgr = enginefacade.transaction_context()
        normal_mgr.configure(
            connection="sqlite://",
            sqlite_fk=True,
            mysql_sql_mode="FOOBAR",
            max_overflow=38
        )

        class MyFixture(test_fixtures.OpportunisticDbFixture):
            def get_enginefacade(self):
                return normal_mgr

        test = mock.Mock(SCHEMA_SCOPE=None)
        fixture = MyFixture(test=test)
        resources = fixture._get_resources()

        testresources.setUpResources(test, resources, None)
        self.addCleanup(
            testresources.tearDownResources,
            test, resources, None
        )
        fixture.setUp()
        self.addCleanup(fixture.cleanUp)

        self.assertTrue(normal_mgr._factory._started)

        test.engine = normal_mgr.writer.get_engine()
        self.assertEqual("sqlite://", str(test.engine.url))
        self.assertIs(test.engine, normal_mgr._factory._writer_engine)
        engine_args = normal_mgr._factory._engine_args_for_conf(None)
        self.assertTrue(engine_args['sqlite_fk'])
        self.assertEqual("FOOBAR", engine_args["mysql_sql_mode"])
        self.assertEqual(38, engine_args["max_overflow"])

        fixture.cleanUp()
        fixture._clear_cleanups()  # so the real cleanUp works
        self.assertFalse(normal_mgr._factory._started)
예제 #15
0
 def setUp(self):
     TestCase.setUp(self)
     result = testresources._get_result()
     testresources.setUpResources(self, self.resources, result)
     self.addCleanup(
         testresources.tearDownResources, self, self.resources, result)
예제 #16
0
 def setUpResources(self):
     testresources.setUpResources(
         self, self.resources, testresources._get_result())
 def testSetUpUsesResource(self):
     # setUpResources records a use of each declared resource.
     self.resourced_case.resources = [("foo", self.resource_manager)]
     testresources.setUpResources(self.resourced_case,
         self.resourced_case.resources, None)
     self.assertEqual(self.resource_manager._uses, 1)
 def testSetUpResourcesSingle(self):
     # setUpResources installs the resources listed in ResourcedTestCase.
     self.resourced_case.resources = [("foo", self.resource_manager)]
     testresources.setUpResources(self.resourced_case,
         self.resourced_case.resources, None)
     self.assertEqual(self.resource, self.resourced_case.foo)
 def testSetUpResourcesSingle(self):
     # setUpResources installs the resources listed in ResourcedTestCase.
     self.resourced_case.resources = [("foo", self.resource_manager)]
     testresources.setUpResources(self.resourced_case,
                                  self.resourced_case.resources, None)
     self.assertEqual(self.resource, self.resourced_case.foo)
예제 #20
0
 def setUpResources(self):
     testresources.setUpResources(self, self.resources,
                                  testresources._get_result())
 def testSetUpUsesResource(self):
     # setUpResources records a use of each declared resource.
     self.resourced_case.resources = [("foo", self.resource_manager)]
     testresources.setUpResources(self.resourced_case,
                                  self.resourced_case.resources, None)
     self.assertEqual(self.resource_manager._uses, 1)