diff --git a/lingo/agendas/models.py b/lingo/agendas/models.py index 896f37c..68fc822 100644 --- a/lingo/agendas/models.py +++ b/lingo/agendas/models.py @@ -21,7 +21,7 @@ from django.db import models from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ -from lingo.utils.misc import AgendaImportError, clean_import_data, generate_slug +from lingo.utils.misc import LingoImportError, clean_import_data, generate_slug class Agenda(models.Model): @@ -71,12 +71,12 @@ class Agenda(models.Model): try: agenda = Agenda.objects.get(slug=data['slug']) except Agenda.DoesNotExist: - raise AgendaImportError(_('Missing "%s" agenda') % data['slug']) + raise LingoImportError(_('Missing "%s" agenda') % data['slug']) if data.get('check_type_group'): try: data['check_type_group'] = CheckTypeGroup.objects.get(slug=data['check_type_group']) except CheckTypeGroup.DoesNotExist: - raise AgendaImportError(_('Missing "%s" check type group') % data['check_type_group']) + raise LingoImportError(_('Missing "%s" check type group') % data['check_type_group']) agenda.check_type_group = data.get('check_type_group') agenda.save() diff --git a/lingo/pricing/management/commands/import_pricing_config.py b/lingo/pricing/management/commands/import_pricing_config.py index b34cdd8..4b4f00e 100644 --- a/lingo/pricing/management/commands/import_pricing_config.py +++ b/lingo/pricing/management/commands/import_pricing_config.py @@ -20,7 +20,7 @@ import sys from django.core.management.base import BaseCommand, CommandError from lingo.pricing.utils import import_site -from lingo.utils.misc import AgendaImportError +from lingo.utils.misc import LingoImportError class Command(BaseCommand): @@ -43,7 +43,7 @@ class Command(BaseCommand): clean=options['clean'], overwrite=options['overwrite'], ) - except AgendaImportError as exc: + except LingoImportError as exc: raise CommandError('%s' % exc) if filename == '-': diff --git a/lingo/pricing/models.py b/lingo/pricing/models.py index 8d99a67..f6dac8c 100644 --- a/lingo/pricing/models.py +++ b/lingo/pricing/models.py @@ -25,7 +25,7 @@ from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from lingo.agendas.models import Agenda, CheckType -from lingo.utils.misc import AgendaImportError, clean_import_data, generate_slug +from lingo.utils.misc import LingoImportError, clean_import_data, generate_slug class PricingError(Exception): @@ -308,10 +308,10 @@ class Pricing(models.Model): for category_data in categories: category_slug = category_data['category'] if category_data['category'] not in categories_by_slug: - raise AgendaImportError(_('Missing "%s" pricing category') % category_data['category']) + raise LingoImportError(_('Missing "%s" pricing category') % category_data['category']) for criteria_slug in category_data['criterias']: if (category_slug, criteria_slug) not in criterias_by_categories_and_slug: - raise AgendaImportError( + raise LingoImportError( _('Missing "%s" pricing criteria for "%s" category') % (criteria_slug, category_slug) ) data = clean_import_data(cls, data) @@ -456,11 +456,11 @@ class AgendaPricing(models.Model): try: agendas.append(Agenda.objects.get(slug=agenda_slug)) except Agenda.DoesNotExist: - raise AgendaImportError(_('Missing "%s" agenda') % agenda_slug) + raise LingoImportError(_('Missing "%s" agenda') % agenda_slug) try: data['pricing'] = Pricing.objects.get(slug=data['pricing']) except Pricing.DoesNotExist: - raise AgendaImportError(_('Missing "%s" pricing model') % data['pricing']) + raise LingoImportError(_('Missing "%s" pricing model') % data['pricing']) agenda_pricing, created = cls.objects.update_or_create(slug=data['slug'], defaults=data) if overwrite and not created: diff --git a/lingo/pricing/views.py b/lingo/pricing/views.py index b10ce3f..23515bd 100644 --- a/lingo/pricing/views.py +++ b/lingo/pricing/views.py @@ -71,7 +71,7 @@ from lingo.pricing.models import ( PricingCriteriaCategory, ) from lingo.pricing.utils import export_site, import_site -from lingo.utils.misc import AgendaImportError +from lingo.utils.misc import LingoImportError class HomeView(TemplateView): @@ -112,7 +112,7 @@ class ConfigImportView(FormView): try: results = import_site(config_json, overwrite=False) - except AgendaImportError as exc: + except LingoImportError as exc: form.add_error('config_json', '%s' % exc) return self.form_invalid(form) except KeyError as exc: diff --git a/lingo/utils/misc.py b/lingo/utils/misc.py index 1cda3d6..805fbd1 100644 --- a/lingo/utils/misc.py +++ b/lingo/utils/misc.py @@ -22,7 +22,7 @@ from django.core.exceptions import FieldDoesNotExist, ValidationError from django.utils.translation import gettext_lazy as _ -class AgendaImportError(Exception): +class LingoImportError(Exception): pass @@ -69,7 +69,7 @@ def clean_import_data(cls, data): try: field.run_validators(value) except ValidationError: - raise AgendaImportError(_('Bad slug format "%s"') % value) + raise LingoImportError(_('Bad slug format "%s"') % value) return cleaned_data diff --git a/tests/pricing/test_import_export.py b/tests/pricing/test_import_export.py index afcd9d9..0d872fd 100644 --- a/tests/pricing/test_import_export.py +++ b/tests/pricing/test_import_export.py @@ -21,7 +21,7 @@ from lingo.pricing.models import ( PricingCriteriaCategory, ) from lingo.pricing.utils import import_site -from lingo.utils.misc import AgendaImportError +from lingo.utils.misc import LingoImportError pytestmark = pytest.mark.django_db @@ -119,19 +119,19 @@ def test_import_export_agenda_pricing(app): data = json.loads(output) Agenda.objects.all().delete() - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo-bar" agenda' agenda2 = Agenda.objects.create(label='Baz') - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo-bar" agenda' del data['pricing_models'] Pricing.objects.all().delete() agenda = Agenda.objects.create(label='Foo Bar') - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo" pricing model' @@ -220,12 +220,12 @@ def test_import_export_agenda_with_check_types(app): agenda.check_type_group = None agenda.save() - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo" check type group' CheckTypeGroup.objects.create(label='foobar') - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo" check type group' @@ -344,12 +344,12 @@ def test_import_export_pricing_with_categories(app): data = json.loads(output) del data['pricing_categories'] - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo-bar" pricing category' CriteriaCategory.objects.create(label='Foobar') - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "foo-bar" pricing category' @@ -405,7 +405,7 @@ def test_import_export_pricing_with_categories(app): 'criterias': [], }, ] - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "unknown" pricing criteria for "foo-bar-3" category' @@ -422,7 +422,7 @@ def test_import_export_pricing_with_categories(app): 'criterias': [], }, ] - with pytest.raises(AgendaImportError) as excinfo: + with pytest.raises(LingoImportError) as excinfo: import_site(data, overwrite=True) assert str(excinfo.value) == 'Missing "crit-1" pricing criteria for "foo-bar-3" category'