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'], "")
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))
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)
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)
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))
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)
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"], )
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)
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'])
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>')
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>')
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")