コード例 #1
0
ファイル: test_database.py プロジェクト: bryson/celery
 def test_get_engine_forked(self, create_engine):
     s = SessionManager()
     s._after_fork()
     engine = s.get_engine('dburi', foo=1)
     create_engine.assert_called_with('dburi', foo=1)
     assert engine is create_engine()
     engine2 = s.get_engine('dburi', foo=1)
     assert engine2 is engine
コード例 #2
0
ファイル: test_database.py プロジェクト: enpo/celery
 def test_get_engine_forked(self, create_engine):
     s = SessionManager()
     s._after_fork()
     engine = s.get_engine("dburi", foo=1)
     create_engine.assert_called_with("dburi", foo=1)
     self.assertIs(engine, create_engine())
     engine2 = s.get_engine("dburi", foo=1)
     self.assertIs(engine2, engine)
コード例 #3
0
ファイル: test_database.py プロジェクト: enpo/celery
 def test_create_session_forked(self, sessionmaker):
     s = SessionManager()
     s.get_engine = Mock(name="get_engine")
     s._after_fork()
     engine, session = s.create_session("dburi", short_lived_sessions=True)
     sessionmaker.assert_called_with(bind=s.get_engine())
     self.assertIs(session, sessionmaker())
     sessionmaker.return_value = Mock(name="new")
     engine, session2 = s.create_session("dburi", short_lived_sessions=True)
     sessionmaker.assert_called_with(bind=s.get_engine())
     self.assertIsNot(session2, session)
     sessionmaker.return_value = Mock(name="new2")
     engine, session3 = s.create_session("dburi", short_lived_sessions=False)
     sessionmaker.assert_called_with(bind=s.get_engine())
     self.assertIs(session3, session2)
コード例 #4
0
ファイル: test_database.py プロジェクト: bryson/celery
 def test_create_session_forked(self, sessionmaker):
     s = SessionManager()
     s.get_engine = Mock(name='get_engine')
     s._after_fork()
     engine, session = s.create_session('dburi', short_lived_sessions=True)
     sessionmaker.assert_called_with(bind=s.get_engine())
     assert session is sessionmaker()
     sessionmaker.return_value = Mock(name='new')
     engine, session2 = s.create_session('dburi', short_lived_sessions=True)
     sessionmaker.assert_called_with(bind=s.get_engine())
     assert session2 is not session
     sessionmaker.return_value = Mock(name='new2')
     engine, session3 = s.create_session(
         'dburi', short_lived_sessions=False)
     sessionmaker.assert_called_with(bind=s.get_engine())
     assert session3 is session2
コード例 #5
0
 def test_coverage_madness(self):
     prev, session.register_after_fork = (
         session.register_after_fork, None,
     )
     try:
         SessionManager()
     finally:
         session.register_after_fork = prev
コード例 #6
0
ファイル: test_database.py プロジェクト: yinlinzh/celery
 def test_get_engine_forked(self, create_engine):
     s = SessionManager()
     s._after_fork()
     engine = s.get_engine('dburi', foo=1)
     create_engine.assert_called_with('dburi', foo=1)
     assert engine is create_engine()
     engine2 = s.get_engine('dburi', foo=1)
     assert engine2 is engine
コード例 #7
0
ファイル: test_database.py プロジェクト: zebpalmer/celery
    def test_prepare_models_terminates(self, create_engine):
        """SessionManager.prepare_models has retry logic because the creation
        of database tables by multiple workers is racy. This test patches
        the used method to always raise, so we can verify that it does
        eventually terminate.
        """
        from sqlalchemy.dialects.sqlite import dialect
        from sqlalchemy.exc import DatabaseError

        sqlite = dialect.dbapi()
        manager = SessionManager()
        engine = manager.get_engine('dburi')

        def raise_err(bind):
            raise DatabaseError("", "", [], sqlite.DatabaseError)

        patch_create_all = patch.object(ResultModelBase.metadata,
                                        'create_all',
                                        side_effect=raise_err)

        with pytest.raises(DatabaseError), patch_create_all as mock_create_all:
            manager.prepare_models(engine)

        assert mock_create_all.call_count == PREPARE_MODELS_MAX_RETRIES + 1
コード例 #8
0
ファイル: test_database.py プロジェクト: yinlinzh/celery
 def test_create_session_forked(self, sessionmaker):
     s = SessionManager()
     s.get_engine = Mock(name='get_engine')
     s._after_fork()
     engine, session = s.create_session('dburi', short_lived_sessions=True)
     sessionmaker.assert_called_with(bind=s.get_engine())
     assert session is sessionmaker()
     sessionmaker.return_value = Mock(name='new')
     engine, session2 = s.create_session('dburi', short_lived_sessions=True)
     sessionmaker.assert_called_with(bind=s.get_engine())
     assert session2 is not session
     sessionmaker.return_value = Mock(name='new2')
     engine, session3 = s.create_session('dburi',
                                         short_lived_sessions=False)
     sessionmaker.assert_called_with(bind=s.get_engine())
     assert session3 is session2
コード例 #9
0
ファイル: test_database.py プロジェクト: yinlinzh/celery
 def test_after_fork(self):
     s = SessionManager()
     assert not s.forked
     s._after_fork()
     assert s.forked
コード例 #10
0
ファイル: __init__.py プロジェクト: joehybird/celery
 def ResultSession(self, session_manager=SessionManager()):
     return session_manager.session_factory(
         dburi=self.url,
         short_lived_sessions=self.short_lived_sessions,
         **self.engine_options)
コード例 #11
0
ファイル: test_database.py プロジェクト: bryson/celery
 def test_after_fork(self):
     s = SessionManager()
     assert not s.forked
     s._after_fork()
     assert s.forked
コード例 #12
0
ファイル: test_database.py プロジェクト: xmn1986/celery
 def test_after_fork(self):
     s = SessionManager()
     self.assertFalse(s.forked)
     s._after_fork()
     self.assertTrue(s.forked)
コード例 #13
0
 def test_get_engine_kwargs(self, create_engine):
     s = SessionManager()
     engine = s.get_engine('dbur', foo=1, pool_size=5)
     assert engine is create_engine()
     engine2 = s.get_engine('dburi', foo=1)
     assert engine2 is engine
コード例 #14
0
ファイル: test_database.py プロジェクト: AndreLobato/celery
 def test_after_fork(self):
     s = SessionManager()
     self.assertFalse(s.forked)
     s._after_fork()
     self.assertTrue(s.forked)