From ebf979fa53e388bf15a25e56a986d44d02cbc2d2 Mon Sep 17 00:00:00 2001 From: David Gelvin Date: Thu, 23 Sep 2010 15:51:59 +0300 Subject: [PATCH] Added register / unregister to __init__ --- __init__.py | 7 +++++++ registry.py | 6 +++--- tests/set_and_get.py | 31 ++++++++++++++++--------------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/__init__.py b/__init__.py index 2ad9d85..ccb1286 100644 --- a/__init__.py +++ b/__init__.py @@ -34,4 +34,11 @@ def get_version(): __version__ = get_version() +def register(model_cls, config_cls=None): + from registry import Registry, EavConfig + config_cls = config_cls or EavConfig + Registry.register(model_cls, config_cls) +def unregister(model_cls): + from registry import Registry + Registry.unregister(model_cls) diff --git a/registry.py b/registry.py index 71d47ee..c4f3f51 100644 --- a/registry.py +++ b/registry.py @@ -153,7 +153,7 @@ class Registry(object): @staticmethod - def register(model_cls, config_cls=EavConfig, manager_only=False): + def register(model_cls, config_cls=EavConfig): """ Inject eav features into the given model and attach a signal listener to it for setup. @@ -175,7 +175,7 @@ class Registry(object): Registry.attach_manager(model_cls) - if not manager_only: + if not config_cls.manager_only: Registry.attach_signals(model_cls) Registry.attach_generic_relation(model_cls) @@ -196,7 +196,7 @@ class Registry(object): Registry.detach_manager(model_cls) - if not manager_only: + if not config_cls.manager_only: Registry.detach_signals(model_cls) Registry.detach_generic_relation(model_cls) diff --git a/tests/set_and_get.py b/tests/set_and_get.py index 0714c5a..75886c1 100644 --- a/tests/set_and_get.py +++ b/tests/set_and_get.py @@ -3,8 +3,9 @@ from datetime import datetime from django.test import TestCase from django.contrib.auth.models import User +import eav from ..models import * -from ..registry import Registry, EavConfig +from ..registry import EavConfig from .models import Patient @@ -16,8 +17,8 @@ class EavSetterAndGetterTests(TestCase): def setUp(self): - Registry.unregister(Patient) - Registry.register(Patient) + eav.unregister(Patient) + eav.register(Patient) self.attribute = Attribute.objects\ .create(datatype=Attribute.TYPE_TEXT, @@ -31,8 +32,8 @@ class EavSetterAndGetterTests(TestCase): def tearDown(self): - Registry.unregister(Patient) - Registry.unregister(User) + eav.unregister(Patient) + eav.unregister(User) def additional_attribute_setup(self): @@ -164,9 +165,9 @@ class EavSetterAndGetterTests(TestCase): self.additional_attribute_setup() - Registry.unregister(Patient) - Registry.register(Patient, self.PatientEav) - Registry.register(User, self.UserEav) + eav.unregister(Patient) + eav.register(Patient, self.PatientEav) + eav.register(User, self.UserEav) p = Patient.objects.create(name='Bob') @@ -187,8 +188,8 @@ class EavSetterAndGetterTests(TestCase): self.assertEqual(Patient.objects.get(pk=self.patient.pk).eav.city, 'Tunis') - Registry.unregister(Patient) - Registry.register(Patient, self.PatientEav) + eav.unregister(Patient) + eav.register(Patient, self.PatientEav) p = Patient.objects.create(name='Patrick') p.eav.city = 'Paris' @@ -204,9 +205,9 @@ class EavSetterAndGetterTests(TestCase): self.additional_attribute_setup() - Registry.unregister(Patient) - Registry.register(Patient, self.PatientEav) - Registry.register(User, self.UserEav) + eav.unregister(Patient) + eav.register(Patient, self.PatientEav) + eav.register(User, self.UserEav) p = Patient.objects.create(name='Patrick') u = User.objects.create(username='John') @@ -232,7 +233,7 @@ class EavSetterAndGetterTests(TestCase): self.additional_attribute_setup() - Registry.unregister(Patient) + eav.unregister(Patient) class SubPatientEav(self.PatientEav): @@ -240,7 +241,7 @@ class EavSetterAndGetterTests(TestCase): def get_attributes(cls): return Attribute.objects.filter(slug='country') - Registry.register(Patient, SubPatientEav) + eav.register(Patient, SubPatientEav) self.patient.eav.city = 'Paris' self.patient.eav.country = 'USA'