gpt4 book ai didi

python - 如何使用 Python 的单元测试正确比较两个 SQLAlchemy Column 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:52 26 4
gpt4 key购买 nike

我编写了一个单元测试,用于比较从我的方法返回的 Column 对象。我正在测试中创建一个,然后从我的类(class)获得一个。我的测试代码如下所示:

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())

我的类的方法返回这个:

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)

当我运行测试时,测试失败并显示以下输出:

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)

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())

关于python - 如何使用 Python 的单元测试正确比较两个 SQLAlchemy Column 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21948919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com