Beispiel #1
0
    def test_nav_with_nothing_below(self):
        user = User.objects.get(username="******")
        generate_directory(user)
        book = ComicBook.objects.get(file_name="test4.rar")
        nav = book.nav(user)

        self.assertEqual(nav['cur_path'],
                         urlsafe_base64_encode(book.selector.bytes))
        self.assertEqual(nav['next_path'], "")
Beispiel #2
0
    def test_nav_with_folder_above(self):
        user = User.objects.get(username="******")
        generate_directory(user)
        book = ComicBook.objects.get(file_name="test1.rar")

        nav = book.nav(user)

        self.assertEqual(nav['prev_path'], "")
        self.assertEqual(nav['cur_path'],
                         urlsafe_base64_encode(book.selector.bytes))
Beispiel #3
0
 def test_comic_list(self):
     c = Client()
     response = c.get('/comic/')
     self.assertEqual(response.status_code, 302)
     c.login(username='******', password='******')
     response = c.get('/comic/')
     self.assertEqual(response.status_code, 200)
     user = User.objects.first()
     generate_directory(user)
     directory = Directory.objects.first()
     response = c.get(f'/comic/{urlsafe_base64_encode(directory.selector.bytes).decode()}/')
     self.assertEqual(response.status_code, 200)
Beispiel #4
0
 def test_comic_list(self):
     c = Client()
     response = c.get("/comic/")
     self.assertEqual(response.status_code, 302)
     c.login(username="******", password="******")
     response = c.get("/comic/")
     self.assertEqual(response.status_code, 200)
     user = User.objects.first()
     generate_directory(user)
     directory = Directory.objects.first()
     response = c.get(f"/comic/{urlsafe_base64_encode(directory.selector.bytes)}/")
     self.assertEqual(response.status_code, 200)
Beispiel #5
0
    def test_nav_with_comic_below(self):
        user = User.objects.get(username="******")
        generate_directory(user)
        book = ComicBook.objects.get(file_name="test1.rar",
                                     directory__isnull=True)
        next_book = ComicBook.objects.get(file_name="test2.rar",
                                          directory__isnull=True)
        nav = book.nav(user)

        self.assertEqual(nav['cur_path'],
                         urlsafe_base64_encode(book.selector.bytes))
        self.assertEqual(nav['next_path'],
                         urlsafe_base64_encode(next_book.selector.bytes))
Beispiel #6
0
 def test_file_not_in_archive(self):
     c = Client()
     user = User.objects.get(username="******")
     book = ComicBook.objects.get(file_name='test1.rar')
     page = ComicPage.objects.get(Comic=book, index=0)
     page.page_file_name = 'doesnt_exist'
     page.save()
     generate_directory(user)
     c.login(username="******", password="******")
     book.verify_pages()
     response = c.get(
         f"/comic/read/{urlsafe_base64_encode(book.selector.bytes)}/0/img")
     self.assertEqual(response.status_code, 200)
Beispiel #7
0
    def test_recent_comics_json(self):
        c = Client()
        response = c.post("/comic/recent/json/")
        self.assertEqual(response.status_code, 302)

        c.login(username="******", password="******")
        generate_directory(User.objects.first())
        ComicStatus.objects.all().delete()

        req_data = {"start": "0", "length": "10", "search[value]": "", "order[0][dir]": "desc"}
        response = c.post("/comic/recent/json/", req_data)
        self.assertEqual(response.status_code, 200)
        req_data["search[value]"] = "test1.rar"
        response = c.post("/comic/recent/json/", req_data)
        self.assertEqual(response.status_code, 200)
        self.maxDiff = None
        book = ComicBook.objects.get(file_name="test1.rar")
        self.assertDictEqual(
            json.loads(response.content),
            {
                "data": [
                    {
                        "date": book.date_added.strftime("%d/%m/%y-%H:%M"),
                        "icon": '<span class="glyphicon glyphicon-book"></span>',
                        "label": '<center><span class="label ' 'label-default">Unread</span></center>',
                        "name": "test1.rar",
                        "selector": urlsafe_base64_encode(book.selector.bytes),
                        "type": "book",
                        "url": f"/comic/read/" f"{urlsafe_base64_encode(book.selector.bytes)}/0/",
                    }
                ],
                "recordsFiltered": 1,
                "recordsTotal": 4,
            },
        )
        req_data["search[value]"] = ""
        req_data["order[0][dir]"] = 3
        response = c.post("/comic/recent/json/", req_data)

        self.assertListEqual(
            [x["name"] for x in json.loads(response.content)["data"]],
            ["test1.rar", "test2.rar", "test4.rar", "test3.rar"],
        )

        req_data["order[0][dir]"] = 2
        response = c.post("/comic/recent/json/", req_data)
        self.assertListEqual(
            [x["name"] for x in json.loads(response.content)["data"]],
            ["test1.rar", "test2.rar", "test4.rar", "test3.rar"],
        )
Beispiel #8
0
 def test_duplicate_pages(self):
     c = Client()
     user = User.objects.get(username="******")
     generate_directory(user)
     book = ComicBook.objects.get(file_name='test1.rar')
     page = ComicPage.objects.get(Comic=book, index=0)
     dup_page = ComicPage(Comic=book,
                          index=0,
                          page_file_name=page.page_file_name,
                          content_type=page.content_type)
     dup_page.save()
     c.login(username="******", password="******")
     book.verify_pages()
     response = c.get(
         f"/comic/read/{urlsafe_base64_encode(book.selector.bytes)}/0/img")
     self.assertEqual(response.status_code, 200)
Beispiel #9
0
    def test_recent_comics_json(self):
        c = Client()
        response = c.post('/comic/recent/json/')
        self.assertEqual(response.status_code, 302)

        c.login(username='******', password='******')
        generate_directory(User.objects.first())
        ComicStatus.objects.all().delete()

        req_data = {
            'start': '0',
            'length': '10',
            'search[value]': '',
            'order[0][dir]': 'desc'
        }
        response = c.post('/comic/recent/json/', req_data)
        self.assertEqual(response.status_code, 200)
        req_data['search[value]'] = 'test1.rar'
        response = c.post('/comic/recent/json/', req_data)
        self.assertEqual(response.status_code, 200)
        self.maxDiff = None
        book = ComicBook.objects.get(file_name='test1.rar')
        self.assertDictEqual(json.loads(response.content),
                             {'data': [{'date': book.date_added.strftime('%d/%m/%y-%H:%M'),
                                        'icon': '<span class="glyphicon glyphicon-book"></span>',
                                        'label': '<center><span class="label '
                                                 'label-default">Unread</span></center>',
                                        'name': 'test1.rar',
                                        'selector': urlsafe_base64_encode(book.selector.bytes).decode(),
                                        'type': 'book',
                                        'url': f'/comic/read/'
                                        f'{urlsafe_base64_encode(book.selector.bytes).decode()}/0/'}],
                              'recordsFiltered': 1,
                              'recordsTotal': 4})
        req_data['search[value]'] = ''
        req_data['order[0][dir]'] = 3
        response = c.post('/comic/recent/json/', req_data)

        self.assertListEqual([x['name'] for x in json.loads(response.content)['data']],
                             ['test1.rar', 'test2.rar', 'test4.rar', 'test3.rar'])

        req_data['order[0][dir]'] = 2
        response = c.post('/comic/recent/json/', req_data)
        self.assertListEqual([x['name'] for x in json.loads(response.content)['data']],
                             ['test1.rar', 'test2.rar', 'test4.rar', 'test3.rar'])
Beispiel #10
0
    def test_generate_directory(self):
        user = User.objects.get(username="******")
        folders = generate_directory(user)
        dir1 = folders[0]
        self.assertEqual(dir1.name, "test_folder")
        self.assertEqual(dir1.type, "directory")
        self.assertEqual(dir1.icon, "glyphicon-folder-open")
        d = Directory.objects.get(name="test_folder", parent__isnull=True)
        location = "/comic/{0}/".format(urlsafe_base64_encode(
            d.selector.bytes))
        self.assertEqual(dir1.location, location)
        self.assertEqual(
            dir1.label,
            '<center><span class="label label-default">Empty</span></center>')

        dir2 = folders[1]
        self.assertEqual(dir2.name, "test1.rar")
        self.assertEqual(dir2.type, "book")
        self.assertEqual(dir2.icon, "glyphicon-book")
        c = ComicBook.objects.get(file_name="test1.rar",
                                  directory__isnull=True)
        location = "/comic/read/{0}/{1}/".format(
            urlsafe_base64_encode(c.selector.bytes), "0")
        self.assertEqual(dir2.location, location)
        self.assertEqual(
            dir2.label,
            '<center><span class="label label-default">Unread</span></center>')

        dir3 = folders[2]
        self.assertEqual(dir3.name, "test2.rar")
        self.assertEqual(dir3.type, "book")
        self.assertEqual(dir3.icon, "glyphicon-book")
        c = ComicBook.objects.get(file_name="test2.rar",
                                  directory__isnull=True)
        location = "/comic/read/{0}/{1}/".format(
            urlsafe_base64_encode(c.selector.bytes), "2")
        self.assertEqual(dir3.location, location)
        self.assertEqual(
            dir3.label,
            '<center><span class="label label-primary">3/4</span></center>')

        dir4 = folders[3]
        self.assertEqual(dir4.name, "test3.rar")
        self.assertEqual(dir4.type, "book")
        self.assertEqual(dir3.icon, "glyphicon-book")
        c = ComicBook.objects.get(file_name="test3.rar",
                                  directory__isnull=True)
        location = "/comic/read/{0}/{1}/".format(
            urlsafe_base64_encode(c.selector.bytes), "0")
        self.assertEqual(dir4.location, location)
        self.assertEqual(
            dir4.label,
            '<center><span class="label label-default">Unread</span></center>')
Beispiel #11
0
    def test_generate_directory(self):
        user = User.objects.get(username='******')
        folders = generate_directory(user)
        dir1 = folders[0]
        self.assertEqual(dir1.name, 'test_folder')
        self.assertEqual(dir1.type, 'directory')
        self.assertEqual(dir1.icon, 'glyphicon-folder-open')
        d = Directory.objects.get(name='test_folder',
                                  parent__isnull=True)
        location = '/comic/{0}/'.format(urlsafe_base64_encode(d.selector.bytes).decode())
        self.assertEqual(dir1.location, location)
        self.assertEqual(dir1.label, '<center><span class="label label-default">Empty</span></center>')

        dir2 = folders[1]
        self.assertEqual(dir2.name, 'test1.rar')
        self.assertEqual(dir2.type, 'book')
        self.assertEqual(dir2.icon, 'glyphicon-book')
        c = ComicBook.objects.get(file_name='test1.rar',
                                  directory__isnull=True)
        location = '/comic/read/{0}/{1}/'.format(urlsafe_base64_encode(c.selector.bytes).decode(),
                                                 '0')
        self.assertEqual(dir2.location, location)
        self.assertEqual(dir2.label, '<center><span class="label label-default">Unread</span></center>')

        dir3 = folders[2]
        self.assertEqual(dir3.name, 'test2.rar')
        self.assertEqual(dir3.type, 'book')
        self.assertEqual(dir3.icon, 'glyphicon-book')
        c = ComicBook.objects.get(file_name='test2.rar',
                                  directory__isnull=True)
        location = '/comic/read/{0}/{1}/'.format(urlsafe_base64_encode(c.selector.bytes).decode(),
                                                 '2')
        self.assertEqual(dir3.location, location)
        self.assertEqual(dir3.label, '<center><span class="label label-primary">3/4</span></center>')

        dir4 = folders[3]
        self.assertEqual(dir4.name, 'test3.rar')
        self.assertEqual(dir4.type, 'book')
        self.assertEqual(dir3.icon, 'glyphicon-book')
        c = ComicBook.objects.get(file_name='test3.rar',
                                  directory__isnull=True)
        location = '/comic/read/{0}/{1}/'.format(urlsafe_base64_encode(c.selector.bytes).decode(),
                                                 '0')
        self.assertEqual(dir4.location, location)
        self.assertEqual(dir4.label, '<center><span class="label label-default">Unread</span></center>')
Beispiel #12
0
    def test_generate_directory(self):
        user = User.objects.get(username="******")
        folders = generate_directory(user)
        dir1 = folders[0]
        self.assertEqual(dir1.name, "test_folder")
        self.assertEqual(dir1.item_type, "Directory")

        dir2 = folders[1]
        self.assertEqual(dir2.name, "test1.rar")
        self.assertEqual(dir2.item_type, "ComicBook")

        dir3 = folders[2]
        self.assertEqual(dir3.name, "test2.rar")
        self.assertEqual(dir2.item_type, "ComicBook")

        dir4 = folders[3]
        self.assertEqual(dir4.name, "test3.rar")
        self.assertEqual(dir4.item_type, "ComicBook")