Python单元测试:类型检查自定义类类型

Joe*_*oey 4 python types unit-testing sqlalchemy

我在编写程序时正在编写单元测试.我正在使用SQLAlchemy进行数据库处理,所以我有一些这样的函数:

def create_sqla_engine():
    """ Create and return the SQLA engine """
    mysql_uri = os.environ.get('MYSQL_CONNECTION_URI')
    engine = sqlalchemy.create_engine(mysql_uri)
    return engine
Run Code Online (Sandbox Code Playgroud)

如果我这样做,print(type(engine))我可以看到类型是<class 'sqlalchemy.engine.base.Engine'>

...所以我想测试此功能工作通过检查类型是正确的(假设的类型将是None,如果create_engine调用失败...)

此代码位于unittests.py:

class TestDatabase(unittest.TestCase):


    def test_database_create_merkle_sqla_session(self):
        assert type(myprogram_database.create_sqla_engine()) is # ?
Run Code Online (Sandbox Code Playgroud)

如何检查变量的类型class

mgi*_*son 6

你在这里有几个选项...最简单的只是检查你得到的对象是不是None:

self.assertIsNotNone(myprogram_database.create_sqla_engine())
Run Code Online (Sandbox Code Playgroud)

如果您确实想要检查返回类型是否是其他内容的实例,则可以使用assertIsInstance:

self.assertIsInstance(myprogram_database.create_sqla_engine(),
                      sqlalchemy.engine.base.Engine)
Run Code Online (Sandbox Code Playgroud)