J'ai un champ booléen dans la table de base de données mysql.
# modèle de table
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
Pour obtenir le nombre de tous les cas de test non obsolètes, vous pouvez simplement le faire comme ceci:
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
Cela fonctionne bien, mais le rapport flake8 indique l'avertissement suivant:
E712: La comparaison à False devrait être "if cond is False:" ou "if not cond:"
D'accord, je pense que cela a du sens. Alors changez mon code à ceci:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
ou
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
Mais aucun des deux ne fonctionne. Le résultat est toujours 0. Je pense que la clause de filtrage ne prend pas en charge l'opérateur "is" ou "is not". Quelqu'un peut-il me dire comment gérer cette situation. Je ne veux pas désactiver le flake.