*Project structure:*
apps
├── app_accounts
│   ├── admin.py
│   ├── apps.py
│   ├── backends.py
│   ├── forms.py
│   ├── __init__.py
│   ├── managers.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0002_auto_20160407_0938.py
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── 0001_initial.cpython-34.pyc
│   │       ├── 0002_auto_20160407_0938.cpython-34.pyc
│   │       └── __init__.cpython-34.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── admin.cpython-34.pyc
│   │   ├── apps.cpython-34.pyc
│   │   ├── backends.cpython-34.pyc
│   │   ├── forms.cpython-34.pyc
│   │   ├── __init__.cpython-34.pyc
│   │   ├── managers.cpython-34.pyc
│   │   ├── models.cpython-34.pyc
│   │   ├── signals.cpython-34.pyc
│   │   ├── test_models.cpython-34.pyc
│   │   ├── urls.cpython-34.pyc
│   │   └── views.cpython-34.pyc
│   ├── static
│   │   └── app_accounts
│   │       ├── css
│   │       │   └── app_accounts.css
│   │       ├── img
│   │       └── js
│   │           └── app_accounts.js
│   ├── templates
│   │   └── app_accounts
│   │       ├── account_create.html
│   │       ├── account_delete.html
│   │       ├── account_detail.html
│   │       ├── account_page.html
│   │       ├── account_profile.html
│   │       ├── account_update.html
│   │       ├── app_accounts_skeleton.html
│   │       ├── login.html
│   │       ├── logout.html
│   │       ├── password_change_done.html
│   │       ├── password_change_form.html
│   │       ├── password_reset_complete.html
│   │       ├── password_reset_confirm.html
│   │       ├── password_reset_done.html
│   │       ├── password_reset_email.html
│   │       └── password_reset_form.html
│   ├── test_models.py
│   ├── urls.py
│   └── views.py
├── app_dictionaries
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── 0001_initial.cpython-34.pyc
│   │       └── __init__.cpython-34.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── admin.cpython-34.pyc
│   │   ├── apps.cpython-34.pyc
│   │   ├── forms.cpython-34.pyc
│   │   ├── __init__.cpython-34.pyc
│   │   ├── managers.cpython-34.pyc
│   │   ├── models.cpython-34.pyc
│   │   ├── signals.cpython-34.pyc
│   │   ├── urls.cpython-34.pyc
│   │   └── views.cpython-34.pyc
│   ├── static
│   │   └── app_dictionaries
│   │       ├── css
│   │       │   └── app_dictionaries.css
│   │       ├── images
│   │       └── js
│   │           └── app_dictionaries.js
│   ├── templates
│   │   └── app_dictionaries
│   │       ├── app_dictionaries_skeleton.html
│   │       ├── dictionary_detail.html
│   │       ├── dictionary_list.html
│   │       ├── modals_for_glossary.html
│   │       ├── modals_for_programmer_dicts.html
│   │       ├── modals_for_translator.html
│   │       ├── programmer_dict_category_detail.html
│   │       ├── sample_add_instruction_to_programmer_dict.html
│   │       ├── sample_add_phrase_to_glossary.html
│   │       ├── sample_add_phrase_to_translator.html
│   │       ├── sample_all_glossaries.html
│   │       ├── sample_all_programmer_dicts_categories.html
│   │       ├── sample_all_programmer_dicts.html
│   │       ├── sample_all_translators.html
│   │       ├── sample_glossaries_for_import_phrases.html
│   │       ├── sample_glossary_content_and_phrases.html
│   │       ├── sample_instructions_programmer_dict.html
│   │       ├── sample_phrases_glossary.html
│   │       ├── sample_phrases_translator.html
│   │       ├── sample_programmer_dict_content_and_instructions.html
│   │       └── sample_translator_content_and_phrases.html
│   ├── tests
│   │   ├── __pycache__
│   │   │   ├── tests.cpython-34.pyc
│   │   │   └── tests_live.cpython-34.pyc
│   │   ├── tests_live.py
│   │   └── tests.py
│   ├── urls.py
│   └── views.py
├── app_feedback
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       └── __init__.cpython-34.pyc
│   ├── __pycache__
│   │   ├── admin.cpython-34.pyc
│   │   ├── apps.cpython-34.pyc
│   │   ├── forms.cpython-34.pyc
│   │   ├── __init__.cpython-34.pyc
│   │   ├── models.cpython-34.pyc
│   │   ├── tests.cpython-34.pyc
│   │   ├── urls.cpython-34.pyc
│   │   └── views.cpython-34.pyc
│   ├── static
│   │   └── app_feedback
│   │       ├── css
│   │       │   └── app_feedback.css
│   │       └── js
│   │           └── app_feedback.js
│   ├── templates
│   │   └── app_feedback
│   │       └── feedback.html
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── app_polls
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0002_auto_20160314_1639.py
│   │   ├── 0003_auto_20160316_1916.py
│   │   ├── 0004_question_count_voters.py
│   │   ├── 0005_auto_20160405_1756.py
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── 0001_initial.cpython-34.pyc
│   │       ├── 0002_auto_20160314_1639.cpython-34.pyc
│   │       ├── 0003_auto_20160316_1916.cpython-34.pyc
│   │       ├── 0004_question_count_voters.cpython-34.pyc
│   │       ├── 0005_auto_20160405_1756.cpython-34.pyc
│   │       └── __init__.cpython-34.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── admin.cpython-34.pyc
│   │   ├── apps.cpython-34.pyc
│   │   ├── __init__.cpython-34.pyc
│   │   ├── managers.cpython-34.pyc
│   │   ├── models.cpython-34.pyc
│   │   ├── test_forms.cpython-34.pyc
│   │   ├── test_models.cpython-34.pyc
│   │   ├── tests.cpython-34.pyc
│   │   ├── test_views.cpython-34.pyc
│   │   ├── urls.cpython-34.pyc
│   │   └── views.cpython-34.pyc
│   ├── static
│   │   └── app_polls
│   │       ├── css
│   │       │   └── app_polls.css
│   │       ├── images
│   │       └── js
│   │           └── app_polls.js
│   ├── templates
│   │   └── app_polls
│   │       ├── app_polls_skeleton.html
│   │       ├── polls_results.html
│   │       ├── sample_wrapper_for_poll.html
│   │       └── sample_wrapper_for_poll_result.html
│   ├── test_models.py
│   ├── test_views.py
│   ├── urls.py
│   └── views.py
└── app_privacy_policy
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   ├── __init__.py
    │   └── __pycache__
    │       └── __init__.cpython-34.pyc
    ├── __pycache__
    │   ├── apps.cpython-34.pyc
    │   ├── __init__.cpython-34.pyc
    │   ├── tests.cpython-34.pyc
    │   ├── urls.cpython-34.pyc
    │   └── views.cpython-34.pyc
    ├── static
    │   └── app_privacy_policy
    │       ├── css
    │       │   └── app_privacy_policy.css
    │       └── js
    │           └── app_privacy_policy.js
    ├── templates
    │   └── app_privacy_policy
    │       └── privacy_policy.html
    ├── tests.py
    ├── urls.py
    └── views.py


*Settings:*

# Application definition

DJANGO_APPS = [
    # 'suit',
    'django.contrib.admin.apps.SimpleAdminConfig',  # disable auto-discovery
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.admindocs',
    'django.contrib.humanize',
]

MY_APPS = [
    'mylabour.apps.MylabourConfig',  # my template tags and filters
    'apps.app_accounts.apps.AppAccountsConfig',
    'apps.app_feedback.apps.AppFeedbackConfig',
    'apps.app_dictionaries.apps.AppDictionariesConfig',
    'apps.app_polls.apps.AppPollsConfig',
    'apps.app_privacy_policy.apps.AppPrivacyPolicyConfig',
]

THIRD_PARTY_APPS = [
    'nocaptcha_recaptcha',
    'django_cleanup',
    'easy_thumbnails',
    'image_cropping',
    'chartjs',
    'django_nose',
]

INSTALLED_APPS = DJANGO_APPS + MY_APPS + THIRD_PARTY_APPS

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.contrib.admindocs.middleware.XViewMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
]

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

*Command: *./manage.py test apps

*Content apps/app_accounts/apps.py*

from django.apps import AppConfig


class AppAccountsConfig(AppConfig):
    name = 'apps.app_accounts'
    verbose_name = 'Application for accounts'

*Content apps/app_accounts/models.py*

import imghdr
import string
import datetime
import collections

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
from django.core.urlresolvers import reverse
from django.core.exceptions import ValidationError
from django.core.validators import MinLengthValidator
from django.conf import settings

from django_countries.fields import CountryField

from .managers import AccountUserManager
from apps.app_dictionaries.models import ProgrammerDictCategory
from mylabour.validators import Validator_UserName


MIN_LENGTH = 8


class AccountUser(AbstractBaseUser, PermissionsMixin):
    """
    Model for users, registering by email and unique name of account
    """

    email = models.EmailField(
        'Email of account',
        max_length=50,
        unique=True,
        error_messages={
            'unique': 'Account with this email already exists.',
        }
    )
    name = models.CharField(
        'Name of account',
        max_length=50,
        unique=True,
        validators=[
            Validator_UserName,
            MinLengthValidator(MIN_LENGTH, 'Field must be at least {0} 
chars'.format(MIN_LENGTH)),
        ],
        error_messages={
            'unique': 'Account with this name already exists.'
        }
    )
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField('Date joined', auto_now_add=True)

    objects = models.Manager()
    objects = AccountUserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['name']

    class Meta:
        db_table = 'account_user'
        verbose_name = "AccountUser"
        verbose_name_plural = "AccountUsers"
        get_latest_by = 'date_joined'
        ordering = ['-date_joined']

    def __str__(self):
        return '{0.email}'.format(self)

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        account = AccountUser.objects.get(email=self.email)
        if not hasattr(account, 'accountuserinfo'):
            AccountUserInfo.objects.create(account=account)

    def get_absolute_url(self):
        return reverse('app_accounts:account_detail', 
kwargs={'account_user_email': self.email})

    def get_full_name(self):
        return '{0.name} ({0.email})'.format(self)

    def clean(self):
        if len(self.password) < MIN_LENGTH:
            raise ValidationError({
                'password': 'Length of password must be at least 
{0}'.format(MIN_LENGTH)
            })
        if all(i in string.digits for i in self.password):
            raise ValidationError({
                'password': 'Your password can\'t be entirely numeric'
            })

    def get_short_name(self):
        return '{0.email}'.format(self)

    @property
    def is_staff(self):
        return self.is_superuser

    def all_dictionaries_created_user(self):
        result = dict()
        count_translators = self.translators.count() if hasattr(self, 
'translators') else 0
        count_glossaries = self.glossaries.count() if hasattr(self, 
'glossaries') else 0
        count_programmer_dicts = self.programmer_dicts.count() if 
hasattr(self, 'programmer_dicts') else 0
        result['count_translators'] = count_translators
        result['count_glossaries'] = count_glossaries
        result['count_programmer_dicts'] = count_programmer_dicts
        return result

    def last_created_dictionaries(self, types_dictionaries=['translators', 
'glossaries']):
        result = list()
        for type_dictionary in types_dictionaries:
            if type_dictionary == 'translators':
                created_translators = self.translators.all()[:3]
                if created_translators:
                    result.append('User have next translators: 
{0}'.format(created_translators))
                else:
                    result.append('User have not translators')
            if type_dictionary == 'glossaries':
                created_glossaries = self.glossaries.all()[:3]
                if created_glossaries:
                    result.append('User have next glossaires: 
{0}'.format(created_glossaries))
                else:
                    result.append('User have not glossaires')
        return result

    def all_categories_with_programmer_dicts(self):
        all_category_programmer_dict = {category for category in 
ProgrammerDictCategory.objects.all()}
        result = dict.fromkeys(all_category_programmer_dict, list())
        result = collections.defaultdict(list)
        for programmer_dict in self.programmer_dicts.all():
            result[programmer_dict.category].append(programmer_dict)
        for i in all_category_programmer_dict:
            if i not in result.keys():
                result[i] = list()
        return dict(result)

*Content apps/app_accounts/test_models.py*

from unittest import mock

from django.test import TestCase

from .models import AccountUser


class Test_AccountUser(TestCase):
    """
    Testing custom auth model AccountUser
    """

    def setUp(self):
        pass

    def setUpTestData(self):
        self.account = 
AccountUser.objects.create(email='exam...@example.com', name='namename', 
password='1212323sdada')

    def test_erta(self):
        self.assertEqual(AccountUser.verbose_name, 'AccountUser')
        self.assertEqual(1, 2)


*Error:*

In [1]: !./manage.py test apps
nosetests apps --verbosity=1
Creating test database for alias 'default'...
.EEE
======================================================================
ERROR: Failure: RuntimeError (Model class app_accounts.models.AccountUser 
doesn't declare an explicit app_label and isn't in an application in 
INSTALLED_APPS.)
----------------------------------------------------------------------
Traceback (most recent call last):
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/failure.py",
 
line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/loader.py",
 
line 418, in loadTestsFromName
    addr.filename, addr.module)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/importer.py",
 
line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/importer.py",
 
line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/imp.py", 
line 235, in load_module
    return load_source(name, filename, file)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/imp.py", 
line 171, in load_source
    module = methods.load()
  File "<frozen importlib._bootstrap>", line 1220, in load
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1448, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in 
_call_with_frames_removed
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/project_PersonalDicts/apps/app_accounts/test_models.py",
 
line 6, in <module>
    from .models import AccountUser
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/project_PersonalDicts/apps/app_accounts/models.py",
 
line 24, in <module>
    class AccountUser(AbstractBaseUser, PermissionsMixin):
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/django/db/models/base.py",
 
line 102, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class app_accounts.models.AccountUser doesn't declare 
an explicit app_label and isn't in an application in INSTALLED_APPS.

======================================================================
ERROR: Failure: RuntimeError (Model class app_polls.models.Question doesn't 
declare an explicit app_label and isn't in an application in 
INSTALLED_APPS.)
----------------------------------------------------------------------
Traceback (most recent call last):
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/failure.py",
 
line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/loader.py",
 
line 418, in loadTestsFromName
    addr.filename, addr.module)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/importer.py",
 
line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/importer.py",
 
line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/imp.py", 
line 235, in load_module
    return load_source(name, filename, file)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/imp.py", 
line 171, in load_source
    module = methods.load()
  File "<frozen importlib._bootstrap>", line 1220, in load
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1448, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in 
_call_with_frames_removed
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/project_PersonalDicts/apps/app_polls/test_models.py",
 
line 4, in <module>
    from .models import Question, Choice
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/project_PersonalDicts/apps/app_polls/models.py",
 
line 11, in <module>
    class Question(models.Model):
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/django/db/models/base.py",
 
line 102, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class app_polls.models.Question doesn't declare an 
explicit app_label and isn't in an application in INSTALLED_APPS.

======================================================================
ERROR: Failure: RuntimeError (Model class app_polls.models.Question doesn't 
declare an explicit app_label and isn't in an application in 
INSTALLED_APPS.)
----------------------------------------------------------------------
Traceback (most recent call last):
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/failure.py",
 
line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/loader.py",
 
line 418, in loadTestsFromName
    addr.filename, addr.module)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/importer.py",
 
line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/nose/importer.py",
 
line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/imp.py", 
line 235, in load_module
    return load_source(name, filename, file)
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/imp.py", 
line 171, in load_source
    module = methods.load()
  File "<frozen importlib._bootstrap>", line 1220, in load
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1448, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in 
_call_with_frames_removed
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/project_PersonalDicts/apps/app_polls/test_views.py",
 
line 8, in <module>
    from .models import Question, Choice
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/project_PersonalDicts/apps/app_polls/models.py",
 
line 11, in <module>
    class Question(models.Model):
  File 
"/home/wlysenko/.virtualenvs/virtual_PersonalDicts/lib/python3.4/site-packages/django/db/models/base.py",
 
line 102, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class app_polls.models.Question doesn't declare an 
explicit app_label and isn't in an application in INSTALLED_APPS.

----------------------------------------------------------------------
Ran 4 tests in 0.168s

FAILED (errors=3)
Destroying test database for alias 'default'...

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/0d0a4f68-f63e-4d4e-9eff-cc26df21d5f9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to