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)