From 8e61105cbb1ca09e72d94f1741399436b549a63f Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 7 Nov 2019 00:38:08 -0500 Subject: [PATCH] Started books per page algorithm, updated some tests --- lib/pyShelf.py | 40 ++++++++++++++++-- static/css/.#main.css | 1 + tests/.#test_bookserver.py | 1 + tests/.#test_library.py | 1 + tests/__pycache__/test_library.cpython-37.pyc | Bin 1023 -> 799 bytes tests/__pycache__/test_sysio.cpython-37.pyc | Bin 951 -> 924 bytes tests/test_bookserver.py | 10 ++++- tests/test_library.py | 5 +-- tests/test_sysio.py | 4 +- 9 files changed, 51 insertions(+), 11 deletions(-) create mode 120000 static/css/.#main.css create mode 120000 tests/.#test_bookserver.py create mode 120000 tests/.#test_library.py diff --git a/lib/pyShelf.py b/lib/pyShelf.py index ca78386..15dd2db 100755 --- a/lib/pyShelf.py +++ b/lib/pyShelf.py @@ -26,7 +26,7 @@ class InitFiles: if not os.path.isdir(os.path.split(_pointer)[0]): os.mkdir(os.path.split(_pointer)[0]) f = open(_pointer, "w+") - f.close() + f.close() class RequestHandler(BaseHTTPRequestHandler): @@ -51,7 +51,8 @@ class RequestHandler(BaseHTTPRequestHandler): elif self.path.endswith('.png'): self.path = '../static' + self.path mimetype = 'image/png' - serve_file = open(self.path[1:], 'rb') # Important to rb read binary for images + serve_file = open(self.path[1:], 'rb') + # Important to rb read binary for images self.send_header('Content-type', mimetype) self.end_headers() self.wfile.write(serve_file.read()) @@ -64,6 +65,29 @@ class RequestHandler(BaseHTTPRequestHandler): try: serve_file.close() except Exception: pass +class BookDisplay: + + def __init__(self): + self.books_per_page = None + self.current_page = 0 + self.thumbnail_size = [200, 300] + self.thumbnail_scale = 1 + self.total_pages = None + + def nextPage(self): + self.current_page += 1 + return self.current_page + + def previousPage(self): + self.current_page -= 1 + return self.current_page + + def booksPerPage(self, screen_size): + x = (self.thumbnail_size[0] * self.thumbnail_scale) + 10 + y = (self.thumbnail_size[1] * self.thumbnail_scale) + 10 + self.books_per_page = int(screen_size[0]//x) * int(screen_size[1]//y) + + class BookServer: """HTTP Frontend""" def __init__(self): @@ -80,9 +104,17 @@ class BookServer: else: self.close_prompt() - def run(self): + def run(self, test=0): """Start HTTP Server""" self.httpd = HTTPServer(self.server_address, self.handler) + if test != 0: + try: + self.httpd.serve_forever() + self.httpd.handle_request() + self.close() + return True + except Exception: + return False try: print("Server running @ http://127.0.0.1:8000") self.httpd.serve_forever() @@ -91,7 +123,7 @@ class BookServer: print("Interrupt received, Closing Server") self.close() print("Server shutdown, Goodbye!") - return False + return True def close(self): """Stop HTTP Server""" diff --git a/static/css/.#main.css b/static/css/.#main.css new file mode 120000 index 0000000..2efe4f5 --- /dev/null +++ b/static/css/.#main.css @@ -0,0 +1 @@ +raelon@golumnsec.2706:1573068976 \ No newline at end of file diff --git a/tests/.#test_bookserver.py b/tests/.#test_bookserver.py new file mode 120000 index 0000000..2efe4f5 --- /dev/null +++ b/tests/.#test_bookserver.py @@ -0,0 +1 @@ +raelon@golumnsec.2706:1573068976 \ No newline at end of file diff --git a/tests/.#test_library.py b/tests/.#test_library.py new file mode 120000 index 0000000..2efe4f5 --- /dev/null +++ b/tests/.#test_library.py @@ -0,0 +1 @@ +raelon@golumnsec.2706:1573068976 \ No newline at end of file diff --git a/tests/__pycache__/test_library.cpython-37.pyc b/tests/__pycache__/test_library.cpython-37.pyc index 645740847fe777ba67937d55216c3c72d9d6fb6c..267b0ba673d4aaf46864fa2da61438b525afc9a5 100644 GIT binary patch delta 236 zcmey*KA(-(iIYnUZcSdutjNec`7pB%AILxsW*#OsW+6@v FMgXzmFIfNp delta 420 zcmX|5JxT*X6rT5HcQc8*2ofWLph24z3&Fxdv5*jBlP2AOE|D1_nnc*yAc_c**c;{m zCWVy;@Bp@+V2@zu3G@xYO!4M@@B86<4SoyJaTJvpz4QIIv+r@VT5AwcOhK2)*$)y3 zV;6f|a$uSdndB!-apjGe@-(~hhFtnOQ2sThHO(f4@x|Wu7UgK>yb={C9Fc40k)HBZ zK-gD>7K_FB<2@>p+8_-E_f=cPihYJUNc#m12<6GQ6LB@O1IKwG|He_*9DS1r=*zs3&L*bL`X zGY)JEw*%KSU9gY1w(Am%3lu20;3=my7fI4Z3n>QuPL^qt<=osEX+N=A3Z2Mv d68nVZ^;{hGZq%TwkHDolR)D||0$d6O`~ieLT-pEt diff --git a/tests/__pycache__/test_sysio.cpython-37.pyc b/tests/__pycache__/test_sysio.cpython-37.pyc index e2b86f7f916833d3195631ea6ab6cf281bd1d8e5..268cb5fbe08195d5c6c87bae13f560b123d8c394 100644 GIT binary patch delta 308 zcmdnaK8KypiI>$ zi$E4Y2=2*qn4;==Kzt#%Ad)mlj2TFPgo;^!1P2obD_GD@Yw5 zkhsNMTv>dJqZDX&NosM)E$*DmB)x*l;EdFqv?3;u0*(-%xN~B0D%g}FVW61xEf$bT kNX`PgfE%pbCO1E&G$+-L5y&eBS;4^whRi(7LcAP|0GW3}tN;K2 delta 335 zcmbQkzMY-ViIUlXGE3Ytb5e_e92VDt z(xizK-!pPgZe;u-%n4L;i!rr`8%RS4p2;0dQT4nazA#)6Ng5=^0wh4rECw++m^fI$ zBDXl=<8u=;^Wx(*xo>fl0xc~`EiNfy1L@!g61SL(D~qGJb25|k3Mzv$QghOZm_TyO zAUTc@pjzj|;#9CvPDLUhK^Bm4NNxi=g9ohKCO1E&G$+-L5y&eR01_OGV93P7$ipne H%fSc$#Ro-% diff --git a/tests/test_bookserver.py b/tests/test_bookserver.py index 6b5108f..5534af7 100644 --- a/tests/test_bookserver.py +++ b/tests/test_bookserver.py @@ -1,11 +1,17 @@ -import unittest import sys +import unittest + +from lib.pyShelf import BookDisplay, BookServer + sys.path.insert(0, '../lib') sys.path.insert(1, '../') -from pyShelf import BookServer class BookServerTest(unittest.TestCase): def test_bookserver(self): server = BookServer() self.assertTrue(server.run()) + + def test_booksPerPage(self): + x, y = 900, 450 + self.assertGreater(BookDisplay().booksPerPage([x,y]), 0) diff --git a/tests/test_library.py b/tests/test_library.py index b120fca..791d585 100755 --- a/tests/test_library.py +++ b/tests/test_library.py @@ -1,6 +1,8 @@ import unittest + # sys.path.insert(1, '../') from lib.library import Catalogue + Catalogue = Catalogue() @@ -12,9 +14,6 @@ class LibraryTest(unittest.TestCase): def test_library_catalogue_filter_books(self): self.assertIsNotNone(Catalogue.filter_books()) - def test_library_catalogue_new_files(self): - self.assertIsNot(Catalogue.new_files(), False) - if __name__ == '__main__': unittest.main() diff --git a/tests/test_sysio.py b/tests/test_sysio.py index 8e50b36..b7b16f9 100755 --- a/tests/test_sysio.py +++ b/tests/test_sysio.py @@ -1,10 +1,10 @@ -import unittest import os import shutil import sys +import unittest + # sys.path.insert(1, '../') from lib.pyShelf import InitFiles -from lib.pyShelf import Epub class SysIoTest(unittest.TestCase):