SQLite-запрос Python возвращает None - PullRequest
       36

SQLite-запрос Python возвращает None

0 голосов
/ 19 сентября 2018

Следующий запрос SQLite возвращает 3:

SELECT MAX(depth) FROM mpitree WHERE child = 2

Но этот код оценивается как None:

def ancestors_depth(self):
    self.cursor.execute("SELECT MAX(depth) FROM mpitree WHERE child = 2");
    return self.cursor.fetchone()[0]

Почему это так?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Хорошо, я нашел проблему.Мой код был вызван в модульном тесте.В этом модульном тесте сначала я написал тестовый пример, который заполнил базу данных (которая работала).Затем я добавил тест для запроса.Но поскольку тесты выполняются в алфавитно-цифровом порядке, тест, который запрашивал базу данных, выполнялся ДО того, как базы данных были заполнены.

Спасибо за помощь.

0 голосов
/ 19 сентября 2018

Вы должны сохранить результат вашего запроса, я думаю:

SQL_QUERY = "SELECT MAX(depth) FROM mpitree WHERE child = 2"

def ancestors_depth(self):
    result = self.cursor.execute(SQL_QUERY)
    return result.fetchone()[0]
...