django.core.exceptions.ImproperlyConfigured при попытке запустить тесты с носом (не в проекте django)

Я создал проект, чтобы узнать, какая структура проекта подходит для моего другого проекта Python.

Что я действительно хочу сделать, так это запустить несколько тестов.

пример.py выглядит так

import unittest
from A.A import A

__author__ = 'michael'


class ExampleTest(unittest.TestCase):
    def setUp(self):
        self.a = A()
        pass

    def test_stub(self):
        self.assertEquals(self.a.foo(), 'foo')

if __name__ == '__main__':
    unittest.main()

Когда я бегу

/Temp $ nosetests

Я получаю исключение django.

Traceback (most recent call last):
  File "/usr/local/bin/nosetests", line 9, in <module>
    load_entry_point('nose==1.3.0', 'console_scripts', 'nosetests')()
  File "/usr/local/lib/python2.7/dist-packages/nose/core.py", line 118, in __init__
    **extra_args)
  File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__
    self.parseArgs(argv)
  File "/usr/local/lib/python2.7/dist-packages/nose/core.py", line 135, in parseArgs
    self.config.configure(argv, doc=self.usage())
  File "/usr/local/lib/python2.7/dist-packages/nose/config.py", line 344, in configure
    self.plugins.configure(options, self)
  File "/usr/local/lib/python2.7/dist-packages/nose/plugins/manager.py", line 284, in configure
    cfg(options, config)
  File "/usr/local/lib/python2.7/dist-packages/nose/plugins/manager.py", line 99, in __call__
    return self.call(*arg, **kw)
  File "/usr/local/lib/python2.7/dist-packages/nose/plugins/manager.py", line 167, in simple
    result = meth(*arg, **kw)
  File "/usr/local/lib/python2.7/dist-packages/queries/nose_plugin.py", line 22, in configure
    connection.use_debug_cursor = True
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 37, in __setattr__
    return setattr(connections[DEFAULT_DB_ALIAS], name, value)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 196, in __getitem__
    self.ensure_defaults(alias)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 170, in ensure_defaults
    conn = self.databases[alias]
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 49, in __get__
    res = instance.__dict__[self.func.__name__] = self.func(instance)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 153, in databases
    self._databases = settings.DATABASES
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 54, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 47, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Я вообще не понимаю. При чем тут джанго?

введите здесь описание изображения

РЕДАКТИРОВАТЬ1:

Не могу показать вам код, потому что я уже научился запускать тесты с помощью юниттеста и удалил этот проект.

Но я уверяю вас, что код для A был просто об использовании B. Что-то вроде

класс A(): def __init(self): self.b = B()

def foo(я): b.foo()

А B был просто классом с методом foo, который печатал строку 'foo'.


person user1685095    schedule 16.01.2014    source источник
comment
A объект из модуля A.A использует Django ORM?   -  person xbello    schedule 16.01.2014
comment
посмотрите на stackoverflow.com/questions/15556499/   -  person Venkatesh Bachu    schedule 16.01.2014
comment
Это не проект джанго. Какое это имеет отношение к этому?   -  person user1685095    schedule 16.01.2014
comment
Ваш код работает отлично, если только A() не использует какой-либо компонент Django. Покажите нам код для A().   -  person xbello    schedule 16.01.2014


Ответы (1)


С линии

File "/usr/local/lib/python2.7/dist-packages/queries/nose_plugin.py", line 22, in configure
    connection.use_debug_cursor = True

Кажется, вы установили django-dynamic-fixture. Этот пакет устанавливает plug_plugin, использующий django ORM.

  • Отключить django-dynamic-fixture (я не знаю, как это сделать) ИЛИ
  • Удалите django-dynamic-fixture ИЛИ
  • Работа в изолированных виртуальных средах.
person xbello    schedule 16.01.2014