def _pre_setup(self): self._original_template_dirs = settings.TEMPLATE_DIRS settings.TEMPLATE_DIRS = list(settings.TEMPLATE_DIRS) settings.TEMPLATE_DIRS.append(os.path.join(os.path.dirname(__file__), 'templates')) self._original_fixture_dirs = settings.FIXTURE_DIRS settings.FIXTURE_DIRS = list(settings.FIXTURE_DIRS) settings.FIXTURE_DIRS.append(os.path.join(os.path.dirname(__file__), 'fixtures')) self._original_installed_apps = settings.INSTALLED_APPS settings.INSTALLED_APPS = list(settings.INSTALLED_APPS) settings.INSTALLED_APPS.append('geyser.tests.testapp') loading.cache.loaded = False call_command('syncdb', interactive=False, verbosity=0) self._original_auth_backends = settings.AUTHENTICATION_BACKENDS settings.AUTHENTICATION_BACKENDS = list(settings.AUTHENTICATION_BACKENDS) settings.AUTHENTICATION_BACKENDS.append('rubberstamp.backends.AppPermissionBackend') self._original_geyser = getattr(settings, 'GEYSER_PUBLISHABLES', {}) settings.GEYSER_PUBLISHABLES = { 'testapp.testmodel1': { 'publish_to': ('testapp.testmodel2', 'testapp.testmodel3'), 'auto_perms': ('owner',), }, 'testapp.testmodel2': { 'publish_to': ('testapp.testmodel3',), 'unique_for_date': ('name',), } } import rubberstamp rubberstamp.autodiscover() super(TestCase, self)._pre_setup()
def test_autodiscover_for_multiple_types(self): p.permissions = [ ('use', 'Use this object', (TestModel, User)), ] rubberstamp.autodiscover() perm = AppPermission.objects.get(app_label='testapp', codename='use') self.assertEqual(len(perm.content_types.all()), 2)
def test_autodiscover_for_single_type(self): self.assertRaises(AppPermission.DoesNotExist, AppPermission.objects.get, app_label='testapp', codename='use') p.permissions = [ ('use', 'Use this object', TestModel), ] rubberstamp.autodiscover() AppPermission.objects.get(app_label='testapp', codename='use')
def test_rubberstamp_permissions(self): ap_ct = ContentType.objects.get_for_model(AppPermission) rubberstamp.autodiscover() perms = AppPermission.objects.all() self.assertEqual(perms.count(), 1) types = perms.get(codename='manage').content_types.all() self.assertTrue(ap_ct in types) self.assertEqual(len(types), 1)
def test_autodiscover_description_conflict(self): p.permissions = [ ('use', 'Use this object', TestModel), ] rubberstamp.autodiscover() perm1 = AppPermission.objects.get(app_label='testapp', codename='use') self.assertEqual(perm1.description, 'Use this object') p.permissions = [ ('use', 'Use this', TestModel), ] rubberstamp.autodiscover() perm2 = AppPermission.objects.get(app_label='testapp', codename='use') self.assertEqual(perm2.description, 'Use this') self.assertEqual(perm1, perm2)