Tam*_*erz 5 python sqlalchemy python-unittest
我编写了一个单元测试,该测试应该比较从我的方法返回的 Column 对象。我在测试中创建一个,然后从我的班级中获取一个。我的测试代码如下所示:
def test_getting_correct_sa_object_from_column(self):
table = self.database.get_table_by_name('ESEventlogMain')
column = table.get_column_by_name('eventdata')
sa_column = sqlalchemy.Column('eventdata', sqlalchemy.Integer, primary_key=False)
self.assertEqual(sa_column, column.get_sa_object())
Run Code Online (Sandbox Code Playgroud)
我的类的方法返回的是:
def get_sa_object(self):
if self.type == 'int':
sa_type = sqlalchemy.Integer
elif self.type == 'varchar':
sa_type = sqlalchemy.String(self.length)
return sqlalchemy.Column(self.name, sa_type, primary_key=self.is_primary_key)
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,它失败并显示以下输出:
Failure
Traceback (most recent call last):
File "C:\Users\tames.mctigue\PycharmProjects\db_setup_wizard\tests.py", line 107, in test_getting_correct_sa_object_from_column
self.assertEqual(sa_column, column.get_sa_object())
AssertionError: Column('eventdata', Integer(), table=None) != Column('eventdata', Integer(), table=None)
Run Code Online (Sandbox Code Playgroud)
AssertionError 显示了看起来相同的数据,因此我陷入了要寻找的内容。除了“assertEqual”之外,我还应该使用不同的比较吗?
尝试使用直接列,例如:
def test_getting_correct_sa_object_from_column(self):
table = self.database.get_table_by_name('ESEventlogMain')
column = table.get_column_by_name('eventdata')
sa_column = table.eventdata # <- Change this column
self.assertEqual(sa_column, column.get_sa_object())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2798 次 |
| 最近记录: |