| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | import jsonfrom django.contrib.auth.models import Userfrom django.core.urlresolvers import reversefrom django.test import TestCase, Clientfrom jet.modules import LinkListfrom jet.models import UserDashboardModule, Bookmarkclass ViewsTestCase(TestCase):    def setUp(self):        self.assertTrue(self._login())    def _login(self):        username = 'admin'        email = 'admin@example.com'        password = 'admin'        self.admin = Client()        self.admin_user = User.objects.create_superuser(username, email, password)        return self.admin.login(username=username, password=password)    def test_module_update_view(self):        title = 'Quick links Test'        new_title = title + '2'        new_layout = 'stacked'        module = UserDashboardModule.objects.create(            title=title,            module='jet.modules.LinkList',            app_label=None,            user=self.admin_user.pk,            column=0,            order=0,            settings='{"layout": "inline"}',            children='[]'        )        response = self.admin.get(reverse('jet:update_module', kwargs={'pk': module.pk}))        self.assertEqual(response.status_code, 200)        self.assertTrue(response.context['module'] is not None)        self.assertTrue(isinstance(response.context['module'], LinkList))        self.assertEqual(response.context['module'].title, title)        post = {            'title': new_title,            'layout': new_layout,            'children-TOTAL_FORMS': '2',            'children-INITIAL_FORMS': '1',            'children-MIN_NUM_FORMS': '0',            'children-MAX_NUM_FORMS': '1000',            'children-0-url': 'http://docs.djangoproject.com/',            'children-0-title': 'Django documentation',            'children-0-external': 'on',            'children-1-url': '',            'children-1-title': '',            'children-__prefix__-url': '',            'children-__prefix__-title': '',            '_save': 'Save'        }        self.admin.post(reverse('jet:update_module', kwargs={'pk': module.pk}), post)        module = UserDashboardModule.objects.get(pk=module.pk)        settings = json.loads(module.settings)        self.assertEqual(module.title, new_title)        self.assertEqual(settings['layout'], new_layout)        module.delete()    def test_add_bookmark_view(self):        url = 'http://test.com/'        title = 'Title'        response = self.admin.post(reverse('jet:add_bookmark'), {'url': url, 'title': title})        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertNotEqual(response['id'], None)        bookmark = Bookmark.objects.get(pk=response['id'])        self.assertNotEqual(bookmark, None)        self.assertEqual(bookmark.title, title)        self.assertEqual(bookmark.url, url)    def test_add_bookmark_view_unauthorized(self):        url = 'http://test.com/'        title = 'Title'        response = self.client.post(reverse('jet:add_bookmark'), {'url': url, 'title': title})        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertTrue(response['error'])    def test_remove_bookmark_view(self):        url = 'http://test.com/'        title = 'Title'        bookmark = Bookmark.objects.create(url=url, title=title, user=self.admin_user.pk)        response = self.admin.post(reverse('jet:remove_bookmark'), {'id': bookmark.id})        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertFalse(Bookmark.objects.filter(pk=bookmark.pk).exists())    def test_toggle_application_pin_view(self):        app_label = 'test_app'        response = self.admin.post(reverse('jet:toggle_application_pin'), {'app_label': app_label})        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertTrue(response['pinned'])        response = self.admin.post(reverse('jet:toggle_application_pin'), {'app_label': app_label})        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertFalse(response['pinned'])    def test_update_dashboard_modules_view(self):        app_label = None        module_0 = UserDashboardModule.objects.create(            title='',            module='jet.modules.LinkList',            app_label=app_label,            user=self.admin_user.pk,            column=0,            order=0        )        module_1 = UserDashboardModule.objects.create(            title='',            module='jet.modules.LinkList',            app_label=app_label,            user=self.admin_user.pk,            column=0,            order=1        )        response = self.admin.post(reverse('jet:update_dashboard_modules'), {            'app_label': '',            'modules': json.dumps([                {'id': module_0.pk, 'column': 0, 'order': 1},                {'id': module_1.pk, 'column': 0, 'order': 0}            ])        })        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        module_0 = UserDashboardModule.objects.get(pk=module_0.pk)        module_1 = UserDashboardModule.objects.get(pk=module_1.pk)        self.assertEqual(module_0.order, 1)        self.assertEqual(module_1.order, 0)        module_0.delete()        module_1.delete()    def test_add_user_dashboard_module_view(self):        response = self.admin.post(reverse('jet:add_user_dashboard_module'), {            'app_label': '',            'type': 'available_children',            'module': 0        })        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertNotEqual(response['id'], None)        module = UserDashboardModule.objects.get(pk=response['id'])        self.assertNotEqual(module, None)    def test_update_dashboard_module_collapse_view(self):        module = UserDashboardModule.objects.create(            title='',            module='jet.modules.LinkList',            app_label=None,            user=self.admin_user.pk,            column=0,            order=0        )        response = self.admin.post(reverse('jet:update_dashboard_module_collapse'), {            'id': module.pk, 'collapsed': True        })        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertTrue(response['collapsed'])        module = UserDashboardModule.objects.get(pk=module.pk)        response = self.admin.post(reverse('jet:update_dashboard_module_collapse'), {            'id': module.pk, 'collapsed': False        })        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertFalse(response['collapsed'])        module.delete()    def test_remove_dashboard_module_view(self):        module = UserDashboardModule.objects.create(            title='',            module='jet.modules.LinkList',            app_label=None,            user=self.admin_user.pk,            column=0,            order=0        )        response = self.admin.post(reverse('jet:remove_dashboard_module'), {'id': module.pk})        self.assertEqual(response.status_code, 200)        response = json.loads(response.content)        self.assertFalse(response['error'])        self.assertFalse(UserDashboardModule.objects.filter(pk=module.pk).exists())
 |