Esempio n. 1
0
    def test_calls_engine_args(self):
        connection_factory = mock.Mock(spec=[])
        connection = mock.Mock(spec=[])
        connection_factory.return_value = connection
        db_uri = mock.Mock(spec=[])
        db_uri_result = '__test_uri'
        db_uri.return_value = db_uri_result
        engine_args = mock.Mock(spec=[])
        engine_args_result = dict(param=mock.Mock(spec=[]))
        engine_args.return_value = engine_args_result

        component = sqlalchemy.db_connection(
            db_uri, engine_args,
            connection_factory=connection_factory,
        )
        self.assertEqual(connection_factory.called, False)

        sess = component()
        self.assertEqual(connection_factory.call_args_list, [
            ((db_uri_result,), engine_args_result),
        ])
        self.assertEqual(db_uri.call_args_list, [
            ((), {}),
        ])
        self.assertEqual(engine_args.call_args_list, [
            ((), {}),
        ])
Esempio n. 2
0
    def test_creates_singletonfactory(self):
        connection_factory = mock.Mock(spec=[])
        connection = mock.Mock(spec=[])
        connection_factory.return_value = connection
        engine_args = dict(param=mock.Mock(spec=[]))
        db_uri = '__test_uri'

        component = sqlalchemy.db_connection(
            db_uri, engine_args,
            connection_factory=connection_factory,
        )
        self.assertEqual(connection_factory.called, False)

        sess = component()
        self.assertEqual(connection_factory.call_args_list, [
            ((db_uri,), engine_args),
        ])

        conn = sess.open()
        self.assertEqual(conn, connection)
        self.assertEqual(connection_factory.call_count, 1)

        sess.commit()
        self.assertEqual(connection_factory.call_count, 1)

        conn = sess.open()
        self.assertEqual(conn, connection)
        self.assertEqual(connection_factory.call_count, 1)

        sess.abort()
        self.assertEqual(connection_factory.call_count, 1)
Esempio n. 3
0
    def test_calls_factory_with_empty_engine_args(self):
        connection_factory = mock.Mock(spec=[])
        connection = mock.Mock(spec=[])
        connection_factory.return_value = connection
        db_uri = '__test_uri'

        component = sqlalchemy.db_connection(
            db_uri, connection_factory=connection_factory,
        )
        self.assertEqual(connection_factory.called, False)

        sess = component()
        self.assertEqual(connection_factory.call_args_list, [
            ((db_uri,), {}),
        ])
Esempio n. 4
0
    def test_registers_singletonfactory(self):
        registry = mock.Mock(spec=['register_component'])
        registry.register_component = mock.Mock(spec=[])
        connection_factory = mock.Mock(spec=[])
        connection = mock.Mock(spec=[])
        connection_factory.return_value = connection
        db_uri = '__test_uri'
        component_name = 'component1'

        component = sqlalchemy.db_connection(
            db_uri, name=component_name, registry=registry,
            connection_factory=connection_factory,
        )
        self.assertEqual(connection_factory.called, False)
        self.assertEqual(registry.register_component.call_args_list, [
            ((component_name, component), {}),
        ])