145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246

Запутался с тестированием при использовании PostgreSQL?

19.06.2016, 10:34. Показов 730. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Django==1.9.7
psql (9.5.3)



Как-то уже поднимал вопрос о том, как же тестировать: https://www.cyberforum.ru/pyth... 52268.html
Я тогда потерял объект. И мне объяснили: перед выполнением каждого метода теста, БД очищается.
Только я начал что-то понимать, как пришла пора переходить с SQLite на PostgreSQL.

Код ниже.

Вот для SQLite тест проходит. Ладно, подумал я - бог с ним. Не чистит, так не чистит.
И написал для теста 2 self.assertEqual(url, '/documents/1002/').

И тест стал проходить.

Едем дальше.

Создаю еще один класс:

Python
1
class DocumentCommentTest(TestCase):
И в нем создаю документ, создаю к нему комментарий.

А в это время тест test_2_get_absolute_url опять начинает орать '/documents/1003/' != '/documents/1002/'.

Да, это что такое. Я уже и тесты пронумеровал, чтобы порядок их исполнения был всегда одинаков.
А тут из другого класса даже влияние пришло. Тут уже нумеруй - не нумеруй.

Выручайте, пожалуйста, как мне все это истолковать, как правильно делать и где почитать в документации или какую-нибудь серьезную статью.



Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
****VARIANT 1****
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'myproject',
        'USER': 'michael',
        'PASSWORD': '***',
        'HOST': 'localhost',
        'PORT': '',
    }
}
 
 
**VARIANT 2**
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mydatabase',
        'USER': 'michael',
        'PASSWORD': '***',
        'HOST': 'localhost',
    }
}
 
 
    from django.test import TestCase
    def create_master_document(title=None,
                               dated_from=today,
                               dated_through=today,
                               created_by=user,
                               creation_date=today):
        title = title or "Some title"
 
        md = MasterDocument.objects.create(title = title,
                                           dated_from = dated_from,
                                           dated_through = dated_through,
                                           created_by = created_by,
                                           creation_date = creation_date)
        return md
 
    class MasterDocumentTest(TestCase):
 
        def test_0_create_master_document(self):
            create_master_document()
 
            number_of_mds = MasterDocument.objects.all().count()
            self.assertEqual(number_of_mds, 1)
 
        def test_1_create_multiple_master_documents(self):
            for i in range(0, 1000):
                create_master_document()
            number_of_mds = MasterDocument.objects.all().count()
            self.assertEqual(number_of_mds, 1000)
 
        def test_2_get_absolute_url(self):
            md = create_master_document()
            url = md.get_absolute_url()
            self.assertEqual(url, '/documents/1/')
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2016, 10:34
Ответы с готовыми решениями:

Программы по контролю за тестированием
Всем привет! Есть какие-нибудь программы, с помощью которых можно вести контроль за тестированием?

Проблема с тестированием WebClass ?
При попытке протестировать готовый проект в браузер посылается HTTP://localhost/VbliveLib/default.asp? Где и как установить вместо...

Запутался при добавление
При реализации добавление запутался . нужно из таблицу корзина передать данные в таблицу продажа . содержание корзины 1.код...

2
 Аватар для ilnurgi
141 / 141 / 38
Регистрация: 20.02.2012
Сообщений: 597
20.06.2016, 11:15
1. чистит
2. субд работают по разному
2.1. в склайт создал запись, у него идентифкатор = 1, удалил и создал новый, у нового тоже будет 1
2.2 в постгресе же создал записбь, идентификатор =1, удалил и создал новый, идентификатор = 2.

нельзя в тестах привязываться к таким вещам
1
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
20.06.2016, 13:23  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2016, 13:23
Помогаю со студенческими работами здесь

Нужна помощь с тестированием диодов :)
Здравствуйте! При проверке диодов мультиметром (в режиме проверки диодов) оказывается, что прямое падение напряжения (540 мВ) не сильно...

Рейтинг антитроянских программ с тестированием
Помогите, пожалуйста, облазила весь интернет.. ничего не могу найти, очень надо..

Ошибка тестированием проекта Unity
В ходе моего обучения появилась проблема. При нажатии кнопки запустить игра запускается, но по кадрам, следующий кадр запускается при...

Запутался при проектировании класса
Всем привет Если опустить всё лишнее: Есть класс Texture со следующими полями: class Texture { unsigned int id; ...

Запутался при составлении запроса(подзапроса)
Требуется определить временные интервалы, в рамках которых опубликованы книги разных типов. TITLES title_id Идентификатор книги ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru