general: use full path to modules (#15689)

This commit is contained in:
Frédéric Péters 2017-11-23 12:11:55 +01:00
parent e1467dd2b7
commit 4d0f124a56
16 changed files with 46 additions and 66 deletions

View File

@ -1,6 +0,0 @@
import sys
import os.path
apps_dir = os.path.join(os.path.dirname(__file__), 'apps')
if apps_dir not in sys.path:
sys.path.append(apps_dir)

View File

@ -17,7 +17,7 @@
import django.apps
class AppConfig(django.apps.AppConfig):
name = 'choosit'
name = 'passerelle.apps.choosit'
label = 'choosit'
def get_after_urls(self):
@ -27,4 +27,4 @@ class AppConfig(django.apps.AppConfig):
from . import models
return models.ChoositSMSGateway
default_app_config = 'choosit.AppConfig'
default_app_config = 'passerelle.apps.choosit.AppConfig'

View File

@ -17,12 +17,11 @@
import django.apps
class AppConfig(django.apps.AppConfig):
name = 'csvdatasource'
name = 'passerelle.apps.csvdatasource'
label = 'csvdatasource'
def get_connector_model(self):
from . import models
return models.CsvDataSource
default_app_config = 'csvdatasource.AppConfig'
default_app_config = 'passerelle.apps.csvdatasource.AppConfig'

View File

@ -24,7 +24,7 @@ from django.core.files.base import File
from django.core.management.base import BaseCommand, CommandError
from django.core.files.storage import DefaultStorage
from family.models import GenericFamily, Invoice
from passerelle.apps.family.models import GenericFamily, Invoice
class Command(BaseCommand):

View File

@ -143,7 +143,7 @@ class GenericFamily(BaseResource):
except zipfile.BadZipfile:
raise ValidationError(_('Invalid zip file.'))
if self.file_format != 'native':
modname = 'family.loaders.%s' % self.file_format
modname = 'passerelle.apps.family.loaders.%s' % self.file_format
__import__(modname)
module = sys.modules[modname]
module.Loader(self).clean(archive)
@ -162,7 +162,7 @@ class GenericFamily(BaseResource):
archive = zipfile.ZipFile(self.archive.path)
if self.file_format != 'native':
modname = 'family.loaders.%s' % self.file_format
modname = 'passerelle.apps.family.loaders.%s' % self.file_format
__import__(modname)
module = sys.modules[modname]
module.Loader(self).load(archive)

View File

@ -17,7 +17,7 @@
import django.apps
class AppConfig(django.apps.AppConfig):
name = 'pastell'
name = 'passerelle.apps.pastell'
label = 'pastell'
def get_after_urls(self):
@ -31,4 +31,4 @@ class AppConfig(django.apps.AppConfig):
from . import forms
return forms.PastellForm
default_app_config = 'pastell.AppConfig'
default_app_config = 'passerelle.apps.pastell.AppConfig'

View File

@ -115,25 +115,25 @@ INSTALLED_APPS = (
'passerelle.base',
'passerelle.datasources',
# connectors
'clicrdv',
'gdc',
'choosit',
'oxyd',
'ovh',
'mobyt',
'pastell',
'bdp',
'base_adresse',
'csvdatasource',
'orange',
'family',
'passerelle.apps.feeds',
'passerelle.apps.jsondatastore',
'passerelle.apps.opengis',
'passerelle.apps.airquality',
'passerelle.apps.okina',
'passerelle.apps.cmis',
'passerelle.apps.base_adresse',
'passerelle.apps.bdp',
'passerelle.apps.choosit',
'passerelle.apps.cityweb',
'passerelle.apps.clicrdv',
'passerelle.apps.cmis',
'passerelle.apps.csvdatasource',
'passerelle.apps.family',
'passerelle.apps.feeds',
'passerelle.apps.gdc',
'passerelle.apps.jsondatastore',
'passerelle.apps.mobyt',
'passerelle.apps.okina',
'passerelle.apps.opengis',
'passerelle.apps.orange',
'passerelle.apps.ovh',
'passerelle.apps.oxyd',
'passerelle.apps.pastell',
'passerelle.apps.solis',
# backoffice templates and static
'gadjo',

View File

@ -14,8 +14,8 @@ from .urls_utils import decorated_includes, required, app_enabled, manager_requi
from .base.urls import access_urlpatterns
from .plugins import register_apps_urls
import choosit.urls
import pastell.urls
from passerelle.apps.choosit import urls as choosit_urls
from passerelle.apps.pastell import urls as pastell_urls
admin.autodiscover()
@ -37,16 +37,16 @@ urlpatterns = [
urlpatterns += required(
app_enabled('choosit'), [
url(r'^choosit/', include(choosit.urls.urlpatterns)),
url(r'^choosit/', include(choosit_urls.urlpatterns)),
url(r'^manage/choosit/',
decorated_includes(manager_required, include(choosit.urls.management_urlpatterns))),
decorated_includes(manager_required, include(choosit_urls.management_urlpatterns))),
]
)
urlpatterns += required(
app_enabled('pastell'), [
url(r'^manage/pastell/',
decorated_includes(manager_required, include(pastell.urls.management_urlpatterns))),
decorated_includes(manager_required, include(pastell_urls.management_urlpatterns))),
]
)

View File

@ -9,7 +9,7 @@ import pytest
from passerelle.base import signature
from passerelle.base.models import ApiUser, AccessRight
from oxyd.models import OxydSMSGateway
from passerelle.apps.oxyd.models import OxydSMSGateway
pytestmark = pytest.mark.django_db

View File

@ -8,7 +8,7 @@ import json
from django.core.management import call_command
from base_adresse.models import BaseAdresse, StreetModel
from passerelle.apps.base_adresse.models import BaseAdresse, StreetModel
from passerelle.views import WrongParameter
@ -88,19 +88,6 @@ def test_base_adresse_reverse_path(mocked_get, app, base_adresse):
resp = app.get('/base-adresse/%s/reverse?lon=-0.593775&lat=47.474633' % base_adresse.slug)
assert mocked_get.call_args[0][0].startswith('http://example.net/path/reverse/?')
@mock.patch('base_adresse.models.urllib.urlretrieve')
def test_base_adresse_command_update(mock_url, db, base_adresse):
mock_url.return_value = ('tests/data/update_streets_test.bz2',)
base_adresse.daily()
streets = StreetModel.objects.all()
assert len(streets) == 3
street = StreetModel.objects.get(id=1)
assert street.name == 'Chemin de la Vie, LA GRANGE DU TRIEU'
assert street.zipcode == '73610'
assert street.type == 'street'
assert street.city == 'Aiguebelette-le-Lac'
assert street.citycode == '73001'
def test_base_adresse_streets_unaccent(app, base_adresse, street):
resp = app.get('/base-adresse/%s/streets?q=une rue tres acc' % base_adresse.slug)
data = json.loads(resp.body)

View File

@ -4,7 +4,7 @@ import urlparse
from StringIO import StringIO
from passerelle.base.models import ApiUser, AccessRight
from clicrdv.models import ClicRdv
from passerelle.apps.clicrdv.models import ClicRdv
@pytest.fixture
@ -22,7 +22,7 @@ def test_urlopen_call(urlopen, app, connector):
assert req.get_full_url().startswith('https://sandbox.clicrdv.com/api/v1/groups/5242/bar')
@mock.patch('clicrdv.models.ClicRdv.get_json')
@mock.patch('passerelle.apps.clicrdv.models.ClicRdv.get_json')
def test_interventionsets(mocked_get, app, connector):
mocked_get.return_value = {
"totalRecords": 2,
@ -47,7 +47,7 @@ def test_interventionsets(mocked_get, app, connector):
assert resp.json.get('data')[0]['text'] == 'Une Demande de Passeport'
@mock.patch('clicrdv.models.ClicRdv.get_json')
@mock.patch('passerelle.apps.clicrdv.models.ClicRdv.get_json')
def test_interventionsets_details(mocked_get, app, connector):
mocked_get.return_value = {
"totalRecords": 2,

View File

@ -4,7 +4,7 @@ import pytest
from django.core.management import call_command
from django.core.management.base import CommandError
from base_adresse.models import BaseAdresse
from passerelle.apps.base_adresse.models import BaseAdresse
def test_cron_frequencies(db):
for frequency in ('hourly', 'daily', 'weekly', 'monthly'):
@ -15,7 +15,7 @@ def test_cron_frequencies(db):
def test_cron_error(db, caplog):
connector = BaseAdresse.objects.create(slug='base-adresse')
with mock.patch('base_adresse.models.BaseResource.hourly',
with mock.patch('passerelle.apps.base_adresse.models.BaseResource.hourly',
new=mock.Mock(side_effect=Exception('hello'))):
with pytest.raises(CommandError):
call_command('cron', 'hourly')

View File

@ -37,7 +37,7 @@ data = """121;69981;DELANOUE;Eliot;H
data_bom = data.decode('utf-8').encode('utf-8-sig')
from csvdatasource.models import CsvDataSource, Query
from passerelle.apps.csvdatasource.models import CsvDataSource, Query
pytestmark = pytest.mark.django_db
@ -249,7 +249,7 @@ def test_unknown_operator(client, setup, filetype):
resp = client.get(url, filters)
result = json.loads(resp.content)
assert result['err'] == 1
assert result['err_class'] == 'csvdatasource.lookups.InvalidOperatorError'
assert result['err_class'] == 'passerelle.apps.csvdatasource.lookups.InvalidOperatorError'
assert result['err_desc'] == 'whatever is not a valid operator'

View File

@ -17,8 +17,8 @@ from django.core.management import call_command
from django.core.management.base import CommandError
from django.core.files.storage import default_storage
from family.models import GenericFamily, Family, FamilyLink
from family.models import Invoice, Adult, Child, DATETIME_FORMAT
from passerelle.apps.family.models import GenericFamily, Family, FamilyLink
from passerelle.apps.family.models import Invoice, Adult, Child, DATETIME_FORMAT
from django.contrib.contenttypes.models import ContentType
@ -227,7 +227,7 @@ def test_orleans_concerto_loader():
'family_data_orleans.zip')
resource = GenericFamily(title='test orleans',
slug='test-orleans', archive=filepath, file_format='concerto_orleans')
from family.loaders.concerto_orleans import Loader
from passerelle.apps.family.loaders.concerto_orleans import Loader
loader = Loader(resource)
loader.archive = zipfile.ZipFile(filepath)

View File

@ -39,8 +39,8 @@ data = """121;69981;DELANOUE;Eliot;H
data_bom = data.decode('utf-8').encode('utf-8-sig')
from csvdatasource.models import CsvDataSource, Query
from bdp.models import Bdp
from passerelle.apps.csvdatasource.models import CsvDataSource, Query
from passerelle.apps.bdp.models import Bdp
pytestmark = pytest.mark.django_db

View File

@ -5,7 +5,7 @@ from django.utils import timezone
from passerelle.base.models import ResourceLog
from passerelle.apps.opengis.models import OpenGIS
from clicrdv.models import ClicRdv
from passerelle.apps.clicrdv.models import ClicRdv
def test_get_description_url_fields():