From 7ccadd479c2ed066674684e3e8091122355433ca Mon Sep 17 00:00:00 2001 From: mohammadsheikhian <39209592+mohammadsheikhian@users.noreply.github.com> Date: Wed, 16 May 2018 23:42:37 +0430 Subject: [PATCH 01/16] First push --- url_shortener.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 url_shortener.py diff --git a/url_shortener.py b/url_shortener.py new file mode 100644 index 0000000..6cca43f --- /dev/null +++ b/url_shortener.py @@ -0,0 +1,56 @@ +from nanohttp import Controller, RestController, context, json, html, text, HttpFound +from hashids import Hashids + +list_url = [] +hashids = Hashids(salt='this is my salt') + +def search_in_list(url): + if url in list_url: + return True + else: + return False + +class UrlShortener(RestController): + + + @text + def post(self, url: str=None): + url = context.form.get('url') + print('url entry: ', url) + + is_exist = search_in_list(url) + print(f'Search result: {is_exist}') + + if is_exist == True: + key = list_url.index(url) + else: + key = len(list_url) + list_url.append(url) + + print('key: ', key) + hash_id = hashids.encode(key) + yield f'urlshortener.com\{hash_id}' + #print(*list_url, sep='\n') + + @html + def get(self): + yield """ + nanohttp Demo +

mohammad

+ + """ + +class Root(Controller): + urlshortener=UrlShortener() + + @html + def index(self): + yield """ + nanohttp Demo +
+ + +
+ + """ + From a11eed0df6fbfe113045a787bc78f409e8abe901 Mon Sep 17 00:00:00 2001 From: Mohammad Date: Fri, 18 May 2018 16:43:46 +0430 Subject: [PATCH 02/16] Edit url shortener --- url_shortener.py | 79 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/url_shortener.py b/url_shortener.py index 6cca43f..0263089 100644 --- a/url_shortener.py +++ b/url_shortener.py @@ -4,24 +4,16 @@ list_url = [] hashids = Hashids(salt='this is my salt') -def search_in_list(url): - if url in list_url: - return True - else: - return False class UrlShortener(RestController): - @text - def post(self, url: str=None): + @html + def post(self): url = context.form.get('url') print('url entry: ', url) - is_exist = search_in_list(url) - print(f'Search result: {is_exist}') - - if is_exist == True: + if url in list_url: key = list_url.index(url) else: key = len(list_url) @@ -29,28 +21,71 @@ def post(self, url: str=None): print('key: ', key) hash_id = hashids.encode(key) - yield f'urlshortener.com\{hash_id}' - #print(*list_url, sep='\n') - - @html - def get(self): - yield """ - nanohttp Demo -

mohammad

+ yield f""" + Url shortener +
+

Successfully

+

Shortener url: http://localhost:8080/urlid/{hash_id}

+
""" + +class UrlId(RestController): + + + @html + def get(self, url_id: str=None): + print('url id: ', url_id) + + try: + if url_id != None: + key = hashids.decode(url_id)[0] + print('key ', key) + + if key < len(list_url): + url = list_url[key] + else: + url = None + else: + url = None + except: + url = None + + print('url: ', url) + + if url != None: + if 'http://' in url: + raise HttpFound(url) + else: + raise HttpFound('http://' + url) + else: + yield """ + Url shortener +
+

Can not found page

+
+ + """ + + class Root(Controller): - urlshortener=UrlShortener() + + + urlshortener = UrlShortener() + urlid = UrlId() @html def index(self): yield """ - nanohttp Demo + Url shortener +
+ Iuput url: - +
+
""" From 3d71f5b596df60fc3aac353a02e09a586ee6e3ac Mon Sep 17 00:00:00 2001 From: Mohammad Date: Fri, 18 May 2018 16:51:39 +0430 Subject: [PATCH 03/16] Cleaning --- url_shortener.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/url_shortener.py b/url_shortener.py index 0263089..335dd97 100644 --- a/url_shortener.py +++ b/url_shortener.py @@ -1,4 +1,4 @@ -from nanohttp import Controller, RestController, context, json, html, text, HttpFound +from nanohttp import Controller, RestController, context, html, text, HttpFound from hashids import Hashids list_url = [] @@ -6,8 +6,6 @@ class UrlShortener(RestController): - - @html def post(self): url = context.form.get('url') @@ -32,8 +30,6 @@ def post(self): class UrlId(RestController): - - @html def get(self, url_id: str=None): print('url id: ', url_id) @@ -70,8 +66,6 @@ def get(self, url_id: str=None): class Root(Controller): - - urlshortener = UrlShortener() urlid = UrlId() From 1cd912af9a63890d2075a026593c36e8d450a737 Mon Sep 17 00:00:00 2001 From: Mohammad Date: Sat, 19 May 2018 10:17:04 +0430 Subject: [PATCH 04/16] Edit name --- .ropeproject/config.py | 112 +++++++++++++++++++++++ .ropeproject/globalnames | Bin 0 -> 6 bytes .ropeproject/history | Bin 0 -> 14 bytes .ropeproject/objectdb | Bin 0 -> 6 bytes __pycache__/url_shortener.cpython-36.pyc | Bin 0 -> 2729 bytes url_shortener.py | 8 +- 6 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 .ropeproject/config.py create mode 100644 .ropeproject/globalnames create mode 100644 .ropeproject/history create mode 100644 .ropeproject/objectdb create mode 100644 __pycache__/url_shortener.cpython-36.pyc diff --git a/.ropeproject/config.py b/.ropeproject/config.py new file mode 100644 index 0000000..0bf7750 --- /dev/null +++ b/.ropeproject/config.py @@ -0,0 +1,112 @@ +# The default ``config.py`` +# flake8: noqa + + +def set_prefs(prefs): + """This function is called before opening the project""" + + # Specify which files and folders to ignore in the project. + # Changes to ignored resources are not added to the history and + # VCSs. Also they are not returned in `Project.get_files()`. + # Note that ``?`` and ``*`` match all characters but slashes. + # '*.pyc': matches 'test.pyc' and 'pkg/test.pyc' + # 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc' + # '.svn': matches 'pkg/.svn' and all of its children + # 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o' + # 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o' + prefs['ignored_resources'] = ['*.pyc', '*~', '.ropeproject', + '.hg', '.svn', '_svn', '.git', '.tox'] + + # Specifies which files should be considered python files. It is + # useful when you have scripts inside your project. Only files + # ending with ``.py`` are considered to be python files by + # default. + #prefs['python_files'] = ['*.py'] + + # Custom source folders: By default rope searches the project + # for finding source folders (folders that should be searched + # for finding modules). You can add paths to that list. Note + # that rope guesses project source folders correctly most of the + # time; use this if you have any problems. + # The folders should be relative to project root and use '/' for + # separating folders regardless of the platform rope is running on. + # 'src/my_source_folder' for instance. + #prefs.add('source_folders', 'src') + + # You can extend python path for looking up modules + #prefs.add('python_path', '~/python/') + + # Should rope save object information or not. + prefs['save_objectdb'] = True + prefs['compress_objectdb'] = False + + # If `True`, rope analyzes each module when it is being saved. + prefs['automatic_soa'] = True + # The depth of calls to follow in static object analysis + prefs['soa_followed_calls'] = 0 + + # If `False` when running modules or unit tests "dynamic object + # analysis" is turned off. This makes them much faster. + prefs['perform_doa'] = True + + # Rope can check the validity of its object DB when running. + prefs['validate_objectdb'] = True + + # How many undos to hold? + prefs['max_history_items'] = 32 + + # Shows whether to save history across sessions. + prefs['save_history'] = True + prefs['compress_history'] = False + + # Set the number spaces used for indenting. According to + # :PEP:`8`, it is best to use 4 spaces. Since most of rope's + # unit-tests use 4 spaces it is more reliable, too. + prefs['indent_size'] = 4 + + # Builtin and c-extension modules that are allowed to be imported + # and inspected by rope. + prefs['extension_modules'] = [] + + # Add all standard c-extensions to extension_modules list. + prefs['import_dynload_stdmods'] = True + + # If `True` modules with syntax errors are considered to be empty. + # The default value is `False`; When `False` syntax errors raise + # `rope.base.exceptions.ModuleSyntaxError` exception. + prefs['ignore_syntax_errors'] = False + + # If `True`, rope ignores unresolvable imports. Otherwise, they + # appear in the importing namespace. + prefs['ignore_bad_imports'] = False + + # If `True`, rope will insert new module imports as + # `from import ` by default. + prefs['prefer_module_from_imports'] = False + + # If `True`, rope will transform a comma list of imports into + # multiple separate import statements when organizing + # imports. + prefs['split_imports'] = False + + # If `True`, rope will remove all top-level import statements and + # reinsert them at the top of the module when making changes. + prefs['pull_imports_to_top'] = True + + # If `True`, rope will sort imports alphabetically by module name instead of + # alphabetically by import statement, with from imports after normal + # imports. + prefs['sort_imports_alphabetically'] = False + + # Location of implementation of rope.base.oi.type_hinting.interfaces.ITypeHintingFactory + # In general case, you don't have to change this value, unless you're an rope expert. + # Change this value to inject you own implementations of interfaces + # listed in module rope.base.oi.type_hinting.providers.interfaces + # For example, you can add you own providers for Django Models, or disable the search + # type-hinting in a class hierarchy, etc. + prefs['type_hinting_factory'] = 'rope.base.oi.type_hinting.factory.default_type_hinting_factory' + + +def project_opened(project): + """This function is called after opening the project""" + # Do whatever you like here! diff --git a/.ropeproject/globalnames b/.ropeproject/globalnames new file mode 100644 index 0000000000000000000000000000000000000000..0a47446c0ad231c193bdd44ff327ba2ab28bf3d8 GIT binary patch literal 6 NcmZo*sx4&D0{{kv0iOT> literal 0 HcmV?d00001 diff --git a/.ropeproject/history b/.ropeproject/history new file mode 100644 index 0000000000000000000000000000000000000000..4490a5d97c960ec09c2666de3b6655a1b6755707 GIT binary patch literal 14 VcmZo*iY;W&h%ID{Eo4g70{|Rf1FHZ4 literal 0 HcmV?d00001 diff --git a/.ropeproject/objectdb b/.ropeproject/objectdb new file mode 100644 index 0000000000000000000000000000000000000000..0a47446c0ad231c193bdd44ff327ba2ab28bf3d8 GIT binary patch literal 6 NcmZo*sx4&D0{{kv0iOT> literal 0 HcmV?d00001 diff --git a/__pycache__/url_shortener.cpython-36.pyc b/__pycache__/url_shortener.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88aec8c0c6bdbc469153c45ba89189d6b8e83bc9 GIT binary patch literal 2729 zcmbVN&2HO95Z>jVXhwF7w9QY`0<4gW3fM~0i=ohhkpztcv}zG2{ozHRwQGqsxuln? zG!o=PV_$RWsX)^Q=p*!1c8^(4qz69eX=D^tD6z1#f(hh0X{{)|;Y30s?L@1d=5tsSO z6P~HcxYma`{zB!(P{mPh6#b=brP9xnkzh@l*S3Rf7_w|~Sq;O?gKpjq zM>n%iht3wX>^cZee9DNgah*}7oseVL!E^}C$ge(=(atcDiVH3m@$@Nd!w(aOw$OOC z3qp~7y00;MOpmD2nKq@z8YNSzi~~!4s*HUTH1tRlSCpj;?18R^I!a)@KGkr&viFyu zM~@(}Q~ei6>#zDZ1XB-DS>0S8$!Ky3gv%ji>@o_-$Ys^blLz&f4^ zRm3}R95j7t?6)=ezBw%vfqfj3d+A%!B%g6b?fOkH&QqY zFqvdmKoG4?9nGe7XpZJk$DZ7Lb|HAzabLG-=60_qf|&Puxzp>#2^&S&ulIU~qaZ40 zqzRTKlB9^DBCeqhz1z?-4Lh_LpWzv9-@*khhzie4ZZPdN#lmr70^dwV5!v}=2>CHv z5UmT$w(#U3>!T0+FyrXB;M{BIC@5GZ&&Cg@z~lp6ZYy9RvWjUp2yl$dm^Iauj=Vb{ z^1d>rIIACi!9WTF<+ntvQeYZ#?MVNg2<Ohvmmz}^ z@t#|ZBX#5|YF1FxKr{{cKK4IG@c{~?)Op<2LH7x?tO0^(j;2wYt^jY4Ll!W|LJq+{ za%sh$ymt%jCT?Ls^^V88qj#Z455_gsg9BGE;~Epk{EocRcPF0>4BY*UR&)SO|B z4vH;k*)0$Y)*KVx;3i0m*XA!3Jif(CWjsj|HGh{7XxIvlUI+h`kHY z7PsiV2~H0aHsJDpG~#asDi6!38*?>G*kzy)fY!h42rZMazCHXC5K;kFhB`p@EQv>S)8{CNQ9*lg^a4l7%{ z76!gB;hjab*SZkV1v;9v#A|_%1xPN#m2E>S3M;8k9K7B2;w9-em(HUOtD#@7CaA!a zk2NM_WerD*7vj-{iHFcK3j`wH(j@A-&E?z{fk?1INi4n+aalZgrAgdSkgg!4#D}0H iBF0lhP#C(%Yi@hxgVRBjW=Iwno-Ttr`s(%7TmJ$LW0dm% literal 0 HcmV?d00001 diff --git a/url_shortener.py b/url_shortener.py index 335dd97..6a7ff0d 100644 --- a/url_shortener.py +++ b/url_shortener.py @@ -5,7 +5,7 @@ hashids = Hashids(salt='this is my salt') -class UrlShortener(RestController): +class UrlShortenerController(RestController): @html def post(self): url = context.form.get('url') @@ -29,7 +29,7 @@ def post(self): """ -class UrlId(RestController): +class UrlIdController(RestController): @html def get(self, url_id: str=None): print('url id: ', url_id) @@ -66,8 +66,8 @@ def get(self, url_id: str=None): class Root(Controller): - urlshortener = UrlShortener() - urlid = UrlId() + urlshortener = UrlShortenerController() + urlid = UrlIdController() @html def index(self): From 05e9865b663ef3f6980e5c2c2511402bc44bbd2a Mon Sep 17 00:00:00 2001 From: Mohammad Date: Sat, 19 May 2018 15:09:33 +0430 Subject: [PATCH 05/16] Add template --- .ropeproject/globalnames | Bin 6 -> 17 bytes __init__.py | 0 __pycache__/url_shortener.cpython-36.pyc | Bin 2729 -> 2692 bytes .../__pycache__/index.mak.cpython-36.pyc | Bin 0 -> 1228 bytes .../notfoundpage.html.cpython-36.pyc | Bin 0 -> 1140 bytes .../successfully.mak.cpython-36.pyc | Bin 0 -> 1303 bytes makomodules/index.mak.py | 31 ++++++++ makomodules/notfoundpage.html.py | 31 ++++++++ makomodules/successfully.mak.py | 34 +++++++++ templates/index.mak | 12 +++ templates/notfoundpage.html | 8 ++ templates/successfully.mak | 10 +++ url_shortener.py | 70 ++++++++++-------- 13 files changed, 164 insertions(+), 32 deletions(-) create mode 100644 __init__.py create mode 100644 makomodules/__pycache__/index.mak.cpython-36.pyc create mode 100644 makomodules/__pycache__/notfoundpage.html.cpython-36.pyc create mode 100644 makomodules/__pycache__/successfully.mak.cpython-36.pyc create mode 100644 makomodules/index.mak.py create mode 100644 makomodules/notfoundpage.html.py create mode 100644 makomodules/successfully.mak.py create mode 100644 templates/index.mak create mode 100755 templates/notfoundpage.html create mode 100644 templates/successfully.mak diff --git a/.ropeproject/globalnames b/.ropeproject/globalnames index 0a47446c0ad231c193bdd44ff327ba2ab28bf3d8..88e138f73dd29255bfc1e44ff017fdb1ea23745f 100644 GIT binary patch literal 17 WcmZo*sx4%QU;u(b#@IrpVm$yN9s{fZ literal 6 NcmZo*sx4&D0{{kv0iOT> diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/__pycache__/url_shortener.cpython-36.pyc b/__pycache__/url_shortener.cpython-36.pyc index 88aec8c0c6bdbc469153c45ba89189d6b8e83bc9..c694f337880211d2434e2de986cb0523acc2a055 100644 GIT binary patch literal 2692 zcmZuzOLJQ_6xQRu?A#wYu8A{qKL`g%%-ykyBp? z?VC`{pCBZWv?Ky+R?>E;t5vaD zt%{#EE-kXz8- zQVEPdBk3K|yZATUk_>v>1>>fuU7X)DliZG6EDK%dmFiKqc2`xCGPmlhrrDcLdM(%f zw5hFb%2H{!_O&whR6icVn0jDcFtSzY0^e@kvUc)CGp(hI?%3QGLzft3ZBg$U7v)1+ zG&SrL-^$IXkY=`SM}_IaU$x&gd1-r81XzofJvxg4_vU*|)yQe7Opl2bIItSpMi-L8X?+G7=5**d$8E9BCrVq)2{!D(RJ4{l^4wD5vU~>lU;e#Pe@gFY2@*EU1 z0P&E_$(;TIQ!Sap!UfaU=4?zCbI_<+y( zIN5=uymSo7Y3tZFagi?|Qdx?2Yb= z1|W$?xyh~7x&udZ?ZO;Sb^%Ux?QipPsy^4c(SXVRM7gN+aEf$S+3eV@F4C%&O7{X6 zkMkIStjAoiGp&bi^>}fHg!zN~)0yfrGowaZRV&?}?7R3!olho8Z=&xcqlXMaN!U}Veje%>(CUHRM#92Isb_EvPC+-V7d2cWlWN%L9O!jI2sD6f zx(UTINfALM5lnF)1Mo=lLjYU^G5~l(cj+5l-Z^&45)!q60>OLJI`%&g9b82-qtQC7%asuLIn&>LMj4y+NuWGe6J zmrx4ngm2Kw!H_)x!pmzJMErE-B zI-LEsJVlBPi0mEAmy>)~^^uqZfFc6_0um?53`q>{*ODN=L&L&*1uz38_CK2g8TYup zWq~pXy<|^AW`Y?U=;BFZxeXR{kLXWqFvn4T|0@Zy4p4qaYIv>ihrJ(2&Avzb0gwk* zb8r1u8O}M7?hrB@km@IT|2G?=?y}Eyb!4LjxdRs9n$cjEzy-R6ywUYcn*{)OcNT*3 zMt2sE;ElMky$$XNC%S+KW*ctgB8)s>%x*lh)Ym!Z|GZ!1Nv+^dkK>tk>_Lcozj4b=*MC#Vt-T z)*k?AtKSEKbA7tOoxJ7@T`<6J;uNI)W4bJe2vi6%Qt_E|k{qRz;OnNbvz8CGGg$*; z7>myu5i~482=EGY={CA_+c`g7hpCukJh2IzwQ+;Kw?F8$&R-tGK%{`&NuKvt69{G@ zy>B#He4<-Ef`PlZ6&?@W5;2Xs-m|(3m5UqG$Nxe!#+XJAX{7q{$?q@UEsb&Jk~*&& zB#uT?I!1w6N@G~)HVRLd6kDq(@b&S`((BklMqz5$DN0NL!ANPPFX0H%#l@3c+afQQ u7s5;XYx>hZ>1r@MhMIm5DDF)DZNfp9?&*V=@p)Aba-d8bM1fVJ%Et_ literal 2729 zcmbVN&2HO95Z>jVXhwF7w9QY`0<4gW3fM~0i=ohhkpztcv}zG2{ozHRwQGqsxuln? zG!o=PV_$RWsX)^Q=p*!1c8^(4qz69eX=D^tD6z1#f(hh0X{{)|;Y30s?L@1d=5tsSO z6P~HcxYma`{zB!(P{mPh6#b=brP9xnkzh@l*S3Rf7_w|~Sq;O?gKpjq zM>n%iht3wX>^cZee9DNgah*}7oseVL!E^}C$ge(=(atcDiVH3m@$@Nd!w(aOw$OOC z3qp~7y00;MOpmD2nKq@z8YNSzi~~!4s*HUTH1tRlSCpj;?18R^I!a)@KGkr&viFyu zM~@(}Q~ei6>#zDZ1XB-DS>0S8$!Ky3gv%ji>@o_-$Ys^blLz&f4^ zRm3}R95j7t?6)=ezBw%vfqfj3d+A%!B%g6b?fOkH&QqY zFqvdmKoG4?9nGe7XpZJk$DZ7Lb|HAzabLG-=60_qf|&Puxzp>#2^&S&ulIU~qaZ40 zqzRTKlB9^DBCeqhz1z?-4Lh_LpWzv9-@*khhzie4ZZPdN#lmr70^dwV5!v}=2>CHv z5UmT$w(#U3>!T0+FyrXB;M{BIC@5GZ&&Cg@z~lp6ZYy9RvWjUp2yl$dm^Iauj=Vb{ z^1d>rIIACi!9WTF<+ntvQeYZ#?MVNg2<Ohvmmz}^ z@t#|ZBX#5|YF1FxKr{{cKK4IG@c{~?)Op<2LH7x?tO0^(j;2wYt^jY4Ll!W|LJq+{ za%sh$ymt%jCT?Ls^^V88qj#Z455_gsg9BGE;~Epk{EocRcPF0>4BY*UR&)SO|B z4vH;k*)0$Y)*KVx;3i0m*XA!3Jif(CWjsj|HGh{7XxIvlUI+h`kHY z7PsiV2~H0aHsJDpG~#asDi6!38*?>G*kzy)fY!h42rZMazCHXC5K;kFhB`p@EQv>S)8{CNQ9*lg^a4l7%{ z76!gB;hjab*SZkV1v;9v#A|_%1xPN#m2E>S3M;8k9K7B2;w9-em(HUOtD#@7CaA!a zk2NM_WerD*7vj-{iHFcK3j`wH(j@A-&E?z{fk?1INi4n+aalZgrAgdSkgg!4#D}0H iBF0lhP#C(%Yi@hxgVRBjW=Iwno-Ttr`s(%7TmJ$LW0dm% diff --git a/makomodules/__pycache__/index.mak.cpython-36.pyc b/makomodules/__pycache__/index.mak.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..888040591e29f9a54e360a630dd353eca16b6d37 GIT binary patch literal 1228 zcmb7D&2A($5Oz=Z{G=z7WFsU52Q-@79N0#1n{-AjN)|T*@}_kAjVF&f1`{QejIu#3=dXk&H2 z{}PTl1;Y>vN+bgu$PVtv5QhQc!9|24uwC5cJ>2I5yu~^=W+5K32ye449nrzW8YN{hz=5`r_>N zMN%lq6R8R+C1uH#(wC;D8Bc1hE_h~5(&*9@O52L-#By1e)N+%Eit+2`l3w0!J-V(- zO(sMZco49FJM#bg29BA5xkDG|BDhEII=7$L&RxKQpMrNGL_>&0cMD_gBgJyAzbYGk&<3swVfjH#8531L`~0)| z`e3rr>s)C$mfRMK9ZpVPEzc%nnpvT$!^xw99@A!xv07F6{G_QHI|i9&Y4Q+y#OR@> zqVfs$rUsyvU)#yJq7r;4nT(Ss5dTRw%}NSLe@lVK;bi&nxlxiP9{5v>GyzdS)1;LO zlv``;(6sBeGg_8h6JtRvHzajq3UaOiirXXPTf#(U$*O^Q6P4>-Y0yi%nAECnv!F#k zQd%b-)0y8+?XHN04}rm_}r!+6?mkhb#7Jw5X=m=A&;?C9S+ H9PIuLm-cEe literal 0 HcmV?d00001 diff --git a/makomodules/__pycache__/notfoundpage.html.cpython-36.pyc b/makomodules/__pycache__/notfoundpage.html.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8ab866b4177e98830c7bf6ef55b743c0c613db2 GIT binary patch literal 1140 zcmb7DOK;RL5Vn)-quFj>^a4m|)!QCQC|ppxtU$C>6=JFSkWem`H})oJlQ?o5`cQi+ zSAGcp0f`IZCvfnUQxE(Bkbv=qLREUfmM4?(c>I0inFsB*`~K@s|C58z7j$V@pg)FH zY=U5j;RL1F$EoF8sqNbsalGgF4#=8c<8{BmoBjl|e3#jNi#h%ztNCqK_orCHpAL~f z!)Nf8ODGA=#E(>$Sy7hWdRNR%1NX~^$JDou`O z|1s$rErK`>umJ_52Fu+499FRm;souXJ$!~vt>Zh&I>8LT#iuq{ZLm2f4ztcMM$F!> zJe@Oy(JROrFm(o9tefU`D#POVN6%pByS<20*6*oUCA_~Ylg=1A2kbqsGWNW&i`yFt zcGM}%MVu;`flga=&|_qh2M|{`=KL{iAA{DGmuB)WG`H^l(o-yEJXwH~&nF4{Z zi!E49n2sgq!7}L1X~#s9rm>`L1hgE|6T5@ewPzcHwN*W}z4LODY^{M|Yh$pk9g_&z zGG6uHjOGl}O8=9gHc4q12P7-gAtY*w0N{8Ob4JFEHA#3zhY5#cBG+@|qBRIK9PB{S z+kb7PjNuImQObbBxd0+%p>7g>m_uh3V=CiBUJ^G9z-F&XQ{T`lZh@G`b(qf8X*Z{T E0s8(~%m4rY literal 0 HcmV?d00001 diff --git a/makomodules/__pycache__/successfully.mak.cpython-36.pyc b/makomodules/__pycache__/successfully.mak.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d80e2843a283682566b1c4c37fb3f727a22acaa GIT binary patch literal 1303 zcmb7EOK;pZ5GM85mE~Q>HG;P2Y2ibGJtQ(*pa|CLA_d~6LEvqWO@Kldfh*DyZAuhK zDt=&n+Ftt~dhNaU{)S$9;I$|JfgS=B?P!(9B4`gK!NF)oGo0_6k-iuX!{7e=JNd~+ z=nu599MB)a(a%6oM6p06PH^cYPU$8tMhu^Mi3ie8eAY|)EJ(JflZ4bwwyBp4sGkgJ zFWI5}A5iiU4d-aQeG6I9*tLDtREC$#_D{JmOlj+9BrDi$2>$%_?bBcW z`t|p(UtE716|!VeDGO4Tghm%qo$H!pEUJ|}W0}!Wql7M`G8I#iVP!3dVLH-HmNBhQ z8zHXlm*o6<_d|>IiOx9Ba9a|r9-Q{}r*L!vVu{Ys8D60q=Xz?KC8qdCeB*-ErH=7d z&W#7U4}O2?Q+I_iTKcB9^j5gjDQFl`f8J&4uMkGx1E;`4Z#Kp@s7cO<%C+qmL>DQi z9&d6iMSasAHFA8qhQB5f2RX#a9s4tK9H}VySZ_^oeY3>oh z^J;H}$bvG{r6u3W)wNbLlr}MUtEyNKtbuuc9sV7k+WJW|G zwV6CPcyQ46o73p}%Q$)y6-V{Pr4hh?{}{$m#}1UXrq!ZxUVs&rnRiQ&~eZ9GYPC* z8r6sK0UxC5ZtCNPP^Z*C+pP)?uh+DQP4AW!mr8S9V*miUPKbbwYUdxag zw60!<%I>vjJN+GX!?Ywh&(f+X7r@v~3ia|+&S<*+_6I4e$U-m(lQkrG`}L;qPXG^e zWBA_IC=SihvQZg>xC}B?xeZcwS;NriHHbBj8{(6;z##5enzq37XCUt49&GQ!?FM`Q E04OqxhX4Qo literal 0 HcmV?d00001 diff --git a/makomodules/index.mak.py b/makomodules/index.mak.py new file mode 100644 index 0000000..534ec77 --- /dev/null +++ b/makomodules/index.mak.py @@ -0,0 +1,31 @@ +# -*- coding:ascii -*- +from mako import runtime, filters, cache +UNDEFINED = runtime.UNDEFINED +STOP_RENDERING = runtime.STOP_RENDERING +__M_dict_builtin = dict +__M_locals_builtin = locals +_magic_number = 10 +_modified_time = 1526721920.9077945 +_enable_loop = True +_template_filename = '/home/mohammad/workspace/projects/urlshortner/templates/index.mak' +_template_uri = 'index.mak' +_source_encoding = 'ascii' +_exports = [] + + +def render_body(context,**pageargs): + __M_caller = context.caller_stack._push_frame() + try: + __M_locals = __M_dict_builtin(pageargs=pageargs) + __M_writer = context.writer() + __M_writer('\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n
\n
\n\n\n') + return '' + finally: + context.caller_stack._pop_frame() + + +""" +__M_BEGIN_METADATA +{"filename": "/home/mohammad/workspace/projects/urlshortner/templates/index.mak", "uri": "index.mak", "source_encoding": "ascii", "line_map": {"16": 0, "21": 1, "27": 21}} +__M_END_METADATA +""" diff --git a/makomodules/notfoundpage.html.py b/makomodules/notfoundpage.html.py new file mode 100644 index 0000000..c2e4ffb --- /dev/null +++ b/makomodules/notfoundpage.html.py @@ -0,0 +1,31 @@ +# -*- coding:ascii -*- +from mako import runtime, filters, cache +UNDEFINED = runtime.UNDEFINED +STOP_RENDERING = runtime.STOP_RENDERING +__M_dict_builtin = dict +__M_locals_builtin = locals +_magic_number = 10 +_modified_time = 1526721980.4338439 +_enable_loop = True +_template_filename = '/home/mohammad/workspace/projects/urlshortner/templates/notfoundpage.html' +_template_uri = 'notfoundpage.html' +_source_encoding = 'ascii' +_exports = [] + + +def render_body(context,**pageargs): + __M_caller = context.caller_stack._push_frame() + try: + __M_locals = __M_dict_builtin(pageargs=pageargs) + __M_writer = context.writer() + __M_writer('\nUrl shortener\n\n
\n

Can not found page

\n
\n\n\n') + return '' + finally: + context.caller_stack._pop_frame() + + +""" +__M_BEGIN_METADATA +{"filename": "/home/mohammad/workspace/projects/urlshortner/templates/notfoundpage.html", "uri": "notfoundpage.html", "source_encoding": "ascii", "line_map": {"16": 0, "21": 1, "27": 21}} +__M_END_METADATA +""" diff --git a/makomodules/successfully.mak.py b/makomodules/successfully.mak.py new file mode 100644 index 0000000..66ab175 --- /dev/null +++ b/makomodules/successfully.mak.py @@ -0,0 +1,34 @@ +# -*- coding:ascii -*- +from mako import runtime, filters, cache +UNDEFINED = runtime.UNDEFINED +STOP_RENDERING = runtime.STOP_RENDERING +__M_dict_builtin = dict +__M_locals_builtin = locals +_magic_number = 10 +_modified_time = 1526724305.1861558 +_enable_loop = True +_template_filename = '/home/mohammad/workspace/projects/urlshortner/templates/successfully.mak' +_template_uri = 'successfully.mak' +_source_encoding = 'ascii' +_exports = [] + + +def render_body(context,**pageargs): + __M_caller = context.caller_stack._push_frame() + try: + __M_locals = __M_dict_builtin(pageargs=pageargs) + hash_id = context.get('hash_id', UNDEFINED) + __M_writer = context.writer() + __M_writer('\nUrl shortener\n\n
\n

Successfully

\n

Shortener url: http://localhost:8080/urlid/') + __M_writer(str(hash_id)) + __M_writer('

\n
\n \n\n\n') + return '' + finally: + context.caller_stack._pop_frame() + + +""" +__M_BEGIN_METADATA +{"filename": "/home/mohammad/workspace/projects/urlshortner/templates/successfully.mak", "uri": "successfully.mak", "source_encoding": "ascii", "line_map": {"16": 0, "22": 1, "23": 6, "24": 6, "30": 24}} +__M_END_METADATA +""" diff --git a/templates/index.mak b/templates/index.mak new file mode 100644 index 0000000..b03a6f0 --- /dev/null +++ b/templates/index.mak @@ -0,0 +1,12 @@ + +Url shortener + +
+
+ Iuput url: + + +
+
+ + diff --git a/templates/notfoundpage.html b/templates/notfoundpage.html new file mode 100755 index 0000000..85ba0ed --- /dev/null +++ b/templates/notfoundpage.html @@ -0,0 +1,8 @@ + +Url shortener + +
+

Can not found page

+
+ + diff --git a/templates/successfully.mak b/templates/successfully.mak new file mode 100644 index 0000000..0c4f3ac --- /dev/null +++ b/templates/successfully.mak @@ -0,0 +1,10 @@ + +Url shortener + +
+

Successfully

+

Shortener url: http://localhost:8080/urlid/${hash_id}

+
+ + + diff --git a/url_shortener.py b/url_shortener.py index 6a7ff0d..af6b055 100644 --- a/url_shortener.py +++ b/url_shortener.py @@ -1,15 +1,43 @@ -from nanohttp import Controller, RestController, context, html, text, HttpFound +import functools +from os.path import join, abspath, dirname +from mako.lookup import TemplateLookup +from nanohttp import Controller, RestController, context, html, text, HttpFound, Static, settings, action from hashids import Hashids + list_url = [] hashids = Hashids(salt='this is my salt') +here = abspath(dirname(__file__)) +lookup = TemplateLookup(directories=[join(here, 'templates')], module_directory=join(here, 'makomodules')) + + +def render_template(func, template_name): + + @functools.wraps(func) + def wrapper(*args, **kwargs): + + result = func(*args, **kwargs) + if hasattr(result, 'to_dict'): + result = result.to_dict() + elif not isinstance(result, dict): + raise ValueError('The result must be an instance of dict, not: %s' % type(result)) + + template_ = lookup.get_template(template_name) + return template_.render(**result) + + return wrapper + + +template = functools.partial(action, content_type='text/html', inner_decorator=render_template) + + class UrlShortenerController(RestController): - @html + @template('successfully.mak') def post(self): url = context.form.get('url') - print('url entry: ', url) + from pudb import set_trace; set_trace() if url in list_url: key = list_url.index(url) @@ -17,20 +45,14 @@ def post(self): key = len(list_url) list_url.append(url) - print('key: ', key) hash_id = hashids.encode(key) - yield f""" - Url shortener -
-

Successfully

-

Shortener url: http://localhost:8080/urlid/{hash_id}

-
- - """ + return dict( + hash_id=hash_id + ) class UrlIdController(RestController): - @html + @template('notfoundpage.html') def get(self, url_id: str=None): print('url id: ', url_id) @@ -56,30 +78,14 @@ def get(self, url_id: str=None): else: raise HttpFound('http://' + url) else: - yield """ - Url shortener -
-

Can not found page

-
- - """ + return dict() class Root(Controller): urlshortener = UrlShortenerController() urlid = UrlIdController() - @html + @template('index.mak') def index(self): - yield """ - Url shortener -
-
- Iuput url: - - -
-
- - """ + return dict( ) From 2c83a4122ed8931f4bd67afe13dfe8ffcee59692 Mon Sep 17 00:00:00 2001 From: Mohammad Date: Sat, 19 May 2018 18:26:31 +0430 Subject: [PATCH 06/16] Refactor --- .ropeproject/globalnames | Bin 17 -> 318 bytes .url_shortener.py.swp | Bin 0 -> 12288 bytes a | 0 alsjdf | 0 .../successfully.mak.cpython-36.pyc | Bin 1303 -> 1281 bytes makomodules/successfully.mak.py | 8 +- templates/.successfully.mak.swp | Bin 0 -> 12288 bytes templates/notfoundpage.html | 8 -- templates/successfully.mak | 2 +- url_shortener.py | 106 +++++++++--------- 10 files changed, 58 insertions(+), 66 deletions(-) create mode 100644 .url_shortener.py.swp create mode 100644 a create mode 100644 alsjdf create mode 100644 templates/.successfully.mak.swp delete mode 100755 templates/notfoundpage.html diff --git a/.ropeproject/globalnames b/.ropeproject/globalnames index 88e138f73dd29255bfc1e44ff017fdb1ea23745f..365deefcfafe5ae40038e6da4ae9b6005d82c509 100644 GIT binary patch literal 318 zcmX|6$!@|x45btTl(KdEhMe*fC9SxmRVb1#QIrzXiI~j9vqFR@gsUapX4DH|%$h+}qRGE?d7wT_nOT2*eCBDKEaP;Q zyi))pCN~V$h99cITx$M0K&JVMe1+^hF@pF=2-{GPgn-hYAhdWi$?9 zz`Q7|s7g!s5HONj?|nlPcww+Ha(zj>YUPZUlCx9jopWfAW-vU5D(iB-PxDquwRW_C i87u#F9M+929MVJUzrsgs+f>~7xBdDlqvy-lKKcXllv(Bg literal 17 WcmZo*sx4%QU;u(b#@IrpVm$yN9s{fZ diff --git a/.url_shortener.py.swp b/.url_shortener.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..9b343ce3d061b6ecb25513fb5aea75d0daffc263 GIT binary patch literal 12288 zcmeI2&x;&I6vr!qny68uCStsl#?U>RaW>J2Va~yxLtF5Yb zcZ`XGAb9qo;zcm{g9z$BAfEK(E=2Ix$sc&qh@gpHqTkoQW@e+C_23~;&3tycyI#Hb z>RYd>S*BY%5A8q5?{4g7IId;v#2B0HY~ISgz=oigZ^hBVwWG!mF+tNq@DVw#_PF6)3M`#U;f^W{dB2E53_M`(+id3RnfK0#*U5 zfK|XMU=^?mSOu&CRspNPMW_J%x_|Og#&%zhcpf|n4uc(F6F7SXV`spp;1h5H90${254aI*0e@{^>>M}^ zeg;2*Wv~R^0MCL0U^BP@{JEa7AHgzM0`GxW!DHYMm;z(q59oOooB`i}li+pmGFSwU zgS!Cfz6G4S3|fLW!3JEf2fyR|H*gAk1YQHLfGO|-FklAU2JB%KunJfO{uc#!aU?2? zjq6O#Oik~YXqV3ce=lJBu1?)H%i-AZCKOp)o>8lklm}QRGkhlNpcdhor zF-AwWx`)+U2YQ@0&i%0wN~MXJs9ZdihQYixzB2B#l*X-*kenOU&us!3cfz?;2{&)( zDB0t&AIq*W2@iV--kswECv{$RU}1-QUhMaT=kaEfJD%6`!`Snj2^0whp+oth7JMI^ zJs{J#?FO8-ZPDRnn-)>0&IcBGzV{iiXolPild71v!@#&* zUw6H*-ONL1BQYpsOC1^=sd|k$f#SkDfKF{FTq3n`DORlt&`ToU2-neR5J2rt8b$p^ z&!0yTvTRT^uA#uWa+Eto_-9{X+!l-f;zXy3P;RZ^bztRn{kR?BS_zU9+IWd?x;hWC zB0R+^#jGQzksej9n5am^=Q-r}@}2pZDfQ9dx%ev_LLnAJzScY|rD>tfB=l7>LcY|< zGU<7fPtq)-qN)^1xmvUHqJMaBpT;vNkq4#8t7I@(^Gqk86| zm=wx_jv{8WIB6K^Wt-l>A>5&6d}C; z6|Dq~rm)ja?QosbH%76Gs#%tpql>jM!6xD*CYqFFZMTdt9w@f literal 0 HcmV?d00001 diff --git a/a b/a new file mode 100644 index 0000000..e69de29 diff --git a/alsjdf b/alsjdf new file mode 100644 index 0000000..e69de29 diff --git a/makomodules/__pycache__/successfully.mak.cpython-36.pyc b/makomodules/__pycache__/successfully.mak.cpython-36.pyc index 2d80e2843a283682566b1c4c37fb3f727a22acaa..676d4f426310a90849a85006706f896f8c77ffa0 100644 GIT binary patch delta 210 zcmbQv)yTzZ%*)HAticf7HIZ|wu9@0H4z2^&97C!c^fU5vQ}uK6GZJ%i6I1ld^NX^J z3lfu4^-GI#iZk+yN>V3YKEkN5c?P30(%*)Gl@!S8X1rs@^n*Ms}z2)!zYmOmR9{L&ixvBcO`5B41xrr(I<@rU~ z#RZAUsrm&)`B|ySCB^!sMLES8`9&oYPak1a+dP3$nUNJJl$kPl6Vu|DTU_z+zVXS4 zIXS6C5Oz*JkXKy9!N9-(5hyRpEJ-a|$xtK)6#C^$yoHljGW#(~O#Z>_%y?_E4T}Si VtYxtml>iz8HVcUmpL~(U005#oQ=tF= diff --git a/makomodules/successfully.mak.py b/makomodules/successfully.mak.py index 66ab175..4b62c37 100644 --- a/makomodules/successfully.mak.py +++ b/makomodules/successfully.mak.py @@ -5,9 +5,9 @@ __M_dict_builtin = dict __M_locals_builtin = locals _magic_number = 10 -_modified_time = 1526724305.1861558 +_modified_time = 1526736931.5179572 _enable_loop = True -_template_filename = '/home/mohammad/workspace/projects/urlshortner/templates/successfully.mak' +_template_filename = '/home/mohammad/workspace/urlshortener/templates/successfully.mak' _template_uri = 'successfully.mak' _source_encoding = 'ascii' _exports = [] @@ -19,7 +19,7 @@ def render_body(context,**pageargs): __M_locals = __M_dict_builtin(pageargs=pageargs) hash_id = context.get('hash_id', UNDEFINED) __M_writer = context.writer() - __M_writer('\nUrl shortener\n\n
\n

Successfully

\n

Shortener url: http://localhost:8080/urlid/') + __M_writer('\nUrl shortener\n\n

\n

Successfully

\n

Shortener url: http://localhost:8080/') __M_writer(str(hash_id)) __M_writer('

\n
\n \n\n\n') return '' @@ -29,6 +29,6 @@ def render_body(context,**pageargs): """ __M_BEGIN_METADATA -{"filename": "/home/mohammad/workspace/projects/urlshortner/templates/successfully.mak", "uri": "successfully.mak", "source_encoding": "ascii", "line_map": {"16": 0, "22": 1, "23": 6, "24": 6, "30": 24}} +{"filename": "/home/mohammad/workspace/urlshortener/templates/successfully.mak", "uri": "successfully.mak", "source_encoding": "ascii", "line_map": {"16": 0, "22": 1, "23": 6, "24": 6, "30": 24}} __M_END_METADATA """ diff --git a/templates/.successfully.mak.swp b/templates/.successfully.mak.swp new file mode 100644 index 0000000000000000000000000000000000000000..386bf5186c5f5b00044fe432a30a900bd40cf751 GIT binary patch literal 12288 zcmeI&J#W-77zc2d5s4Q86H`c8TZe!|l`~;P3^$$10uuNVbB@l5Bio^Os(_CIW5=$1 z1GbL+ENnbca^-|XRf!4lf22oF96PpuQijN$C$C;kqo?~%7{zVI&Ue}CclYkI^pLUI zYFXE^>>phg(<`?7w0R*vvTo^HSt#B)ek4hJojBuDDU5Q#;o^ixx8$6 zJc9rPt|V}SJx(7bebe3eL3H;HedGuTKmY;|fB*y_009U<;J*$6 zxv_;b+WL?kBnJt9c&w$@Z>#d7;A20*+pS@B`sZ=ue71F*omP}?b)?yEdd_KH3un8g z+#6;(Rb|!HGbLX*rJBi5d8DhLCao;Xs##=d(yk^k`3yWlD_Q0uRKckH(3$AsaJ}F| MB@N# -Url shortener - -
-

Can not found page

-
- - diff --git a/templates/successfully.mak b/templates/successfully.mak index 0c4f3ac..8f8c22a 100644 --- a/templates/successfully.mak +++ b/templates/successfully.mak @@ -3,7 +3,7 @@

Successfully

-

Shortener url: http://localhost:8080/urlid/${hash_id}

+

Shortener url: http://localhost:8080/${hash_id}

diff --git a/url_shortener.py b/url_shortener.py index af6b055..c5707a9 100644 --- a/url_shortener.py +++ b/url_shortener.py @@ -1,7 +1,10 @@ +import hashlib +import binascii import functools from os.path import join, abspath, dirname from mako.lookup import TemplateLookup -from nanohttp import Controller, RestController, context, html, text, HttpFound, Static, settings, action +from nanohttp import Controller, RestController, context, html, text, HttpFound, Static, \ + settings, action, HttpNotFound from hashids import Hashids @@ -33,59 +36,56 @@ def wrapper(*args, **kwargs): template = functools.partial(action, content_type='text/html', inner_decorator=render_template) -class UrlShortenerController(RestController): +db = {} + + +class Codec: + def store(self, url): + if not url.startswith('http'): + url = f'http://{url}' + + key = hashlib.sha1(url.encode()).digest() + if key not in db: + db[key] = url + + return binascii.hexlify(key).decode() + + def resolve(self, hexstring): + hexstring = hexstring.encode() + key = binascii.unhexlify(hexstring) + if key not in db: + raise HttpNotFound() + + return db[key] + +codec = Codec() + + +class Root(RestController): + + def _find_handler(self, remaining_paths): + if len(remaining_paths) > 0: + return self.resolve, remaining_paths + return super()._find_handler(remaining_paths) + + @template('index.mak') + def get(self): + return dict() + @template('successfully.mak') def post(self): - url = context.form.get('url') - from pudb import set_trace; set_trace() - - if url in list_url: - key = list_url.index(url) - else: - key = len(list_url) - list_url.append(url) - - hash_id = hashids.encode(key) - return dict( - hash_id=hash_id - ) - - -class UrlIdController(RestController): - @template('notfoundpage.html') - def get(self, url_id: str=None): - print('url id: ', url_id) - - try: - if url_id != None: - key = hashids.decode(url_id)[0] - print('key ', key) - - if key < len(list_url): - url = list_url[key] - else: - url = None - else: - url = None - except: - url = None - - print('url: ', url) - - if url != None: - if 'http://' in url: - raise HttpFound(url) - else: - raise HttpFound('http://' + url) - else: - return dict() - - -class Root(Controller): - urlshortener = UrlShortenerController() - urlid = UrlIdController() + return dict(hash_id=codec.store(context.form.get('url'))) - @template('index.mak') - def index(self): - return dict( ) + @text + def resolve(self, hexstring): + raise HttpFound(codec.resolve(hexstring)) + + +if __name__ == '__main__': + from nanohttp import quickstart, configure + configure() + try: + quickstart(Root()) + except KeyboardInterrupt: + print('CTLR+C just pressed') From 0f0d74d481f30bedb2fbeef04081d341527f6bc9 Mon Sep 17 00:00:00 2001 From: Mohammad Date: Wed, 23 May 2018 09:57:08 +0430 Subject: [PATCH 07/16] Done --- .url_shortener.py.swp | Bin 12288 -> 0 bytes __pycache__/__init__.cpython-36.pyc | Bin 0 -> 132 bytes a | 0 alsjdf | 0 .../notfoundpage.html.cpython-36.pyc | Bin 1140 -> 0 bytes makomodules/notfoundpage.html.py | 31 ------------------ templates/.successfully.mak.swp | Bin 12288 -> 0 bytes url_shortener.py | 1 + 8 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 .url_shortener.py.swp create mode 100644 __pycache__/__init__.cpython-36.pyc delete mode 100644 a delete mode 100644 alsjdf delete mode 100644 makomodules/__pycache__/notfoundpage.html.cpython-36.pyc delete mode 100644 makomodules/notfoundpage.html.py delete mode 100644 templates/.successfully.mak.swp diff --git a/.url_shortener.py.swp b/.url_shortener.py.swp deleted file mode 100644 index 9b343ce3d061b6ecb25513fb5aea75d0daffc263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2&x;&I6vr!qny68uCStsl#?U>RaW>J2Va~yxLtF5Yb zcZ`XGAb9qo;zcm{g9z$BAfEK(E=2Ix$sc&qh@gpHqTkoQW@e+C_23~;&3tycyI#Hb z>RYd>S*BY%5A8q5?{4g7IId;v#2B0HY~ISgz=oigZ^hBVwWG!mF+tNq@DVw#_PF6)3M`#U;f^W{dB2E53_M`(+id3RnfK0#*U5 zfK|XMU=^?mSOu&CRspNPMW_J%x_|Og#&%zhcpf|n4uc(F6F7SXV`spp;1h5H90${254aI*0e@{^>>M}^ zeg;2*Wv~R^0MCL0U^BP@{JEa7AHgzM0`GxW!DHYMm;z(q59oOooB`i}li+pmGFSwU zgS!Cfz6G4S3|fLW!3JEf2fyR|H*gAk1YQHLfGO|-FklAU2JB%KunJfO{uc#!aU?2? zjq6O#Oik~YXqV3ce=lJBu1?)H%i-AZCKOp)o>8lklm}QRGkhlNpcdhor zF-AwWx`)+U2YQ@0&i%0wN~MXJs9ZdihQYixzB2B#l*X-*kenOU&us!3cfz?;2{&)( zDB0t&AIq*W2@iV--kswECv{$RU}1-QUhMaT=kaEfJD%6`!`Snj2^0whp+oth7JMI^ zJs{J#?FO8-ZPDRnn-)>0&IcBGzV{iiXolPild71v!@#&* zUw6H*-ONL1BQYpsOC1^=sd|k$f#SkDfKF{FTq3n`DORlt&`ToU2-neR5J2rt8b$p^ z&!0yTvTRT^uA#uWa+Eto_-9{X+!l-f;zXy3P;RZ^bztRn{kR?BS_zU9+IWd?x;hWC zB0R+^#jGQzksej9n5am^=Q-r}@}2pZDfQ9dx%ev_LLnAJzScY|rD>tfB=l7>LcY|< zGU<7fPtq)-qN)^1xmvUHqJMaBpT;vNkq4#8t7I@(^Gqk86| zm=wx_jv{8WIB6K^Wt-l>A>5&6d}C; z6|Dq~rm)ja?QosbH%76Gs#%tpql>jM!6xD*CYqFFZMTdt9w@f diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8f8bc51174cbedc7942218e11a806ad6ddfe1ef GIT binary patch literal 132 zcmXr!<>ji_|38WW2p)q77+?f49Dul(1xTbY1T$zd`mJOr0tq9CUxxY_`MIh3x%nB1 zxw(lc`sMjW*~JBk$*KCKMLES8`9&qEd8tME@$s2?nI-Y@dIgoYIBatBQ%ZAE?LbBq H12F>t2OA(z literal 0 HcmV?d00001 diff --git a/a b/a deleted file mode 100644 index e69de29..0000000 diff --git a/alsjdf b/alsjdf deleted file mode 100644 index e69de29..0000000 diff --git a/makomodules/__pycache__/notfoundpage.html.cpython-36.pyc b/makomodules/__pycache__/notfoundpage.html.cpython-36.pyc deleted file mode 100644 index c8ab866b4177e98830c7bf6ef55b743c0c613db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmb7DOK;RL5Vn)-quFj>^a4m|)!QCQC|ppxtU$C>6=JFSkWem`H})oJlQ?o5`cQi+ zSAGcp0f`IZCvfnUQxE(Bkbv=qLREUfmM4?(c>I0inFsB*`~K@s|C58z7j$V@pg)FH zY=U5j;RL1F$EoF8sqNbsalGgF4#=8c<8{BmoBjl|e3#jNi#h%ztNCqK_orCHpAL~f z!)Nf8ODGA=#E(>$Sy7hWdRNR%1NX~^$JDou`O z|1s$rErK`>umJ_52Fu+499FRm;souXJ$!~vt>Zh&I>8LT#iuq{ZLm2f4ztcMM$F!> zJe@Oy(JROrFm(o9tefU`D#POVN6%pByS<20*6*oUCA_~Ylg=1A2kbqsGWNW&i`yFt zcGM}%MVu;`flga=&|_qh2M|{`=KL{iAA{DGmuB)WG`H^l(o-yEJXwH~&nF4{Z zi!E49n2sgq!7}L1X~#s9rm>`L1hgE|6T5@ewPzcHwN*W}z4LODY^{M|Yh$pk9g_&z zGG6uHjOGl}O8=9gHc4q12P7-gAtY*w0N{8Ob4JFEHA#3zhY5#cBG+@|qBRIK9PB{S z+kb7PjNuImQObbBxd0+%p>7g>m_uh3V=CiBUJ^G9z-F&XQ{T`lZh@G`b(qf8X*Z{T E0s8(~%m4rY diff --git a/makomodules/notfoundpage.html.py b/makomodules/notfoundpage.html.py deleted file mode 100644 index c2e4ffb..0000000 --- a/makomodules/notfoundpage.html.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding:ascii -*- -from mako import runtime, filters, cache -UNDEFINED = runtime.UNDEFINED -STOP_RENDERING = runtime.STOP_RENDERING -__M_dict_builtin = dict -__M_locals_builtin = locals -_magic_number = 10 -_modified_time = 1526721980.4338439 -_enable_loop = True -_template_filename = '/home/mohammad/workspace/projects/urlshortner/templates/notfoundpage.html' -_template_uri = 'notfoundpage.html' -_source_encoding = 'ascii' -_exports = [] - - -def render_body(context,**pageargs): - __M_caller = context.caller_stack._push_frame() - try: - __M_locals = __M_dict_builtin(pageargs=pageargs) - __M_writer = context.writer() - __M_writer('\nUrl shortener\n\n
\n

Can not found page

\n
\n\n\n') - return '' - finally: - context.caller_stack._pop_frame() - - -""" -__M_BEGIN_METADATA -{"filename": "/home/mohammad/workspace/projects/urlshortner/templates/notfoundpage.html", "uri": "notfoundpage.html", "source_encoding": "ascii", "line_map": {"16": 0, "21": 1, "27": 21}} -__M_END_METADATA -""" diff --git a/templates/.successfully.mak.swp b/templates/.successfully.mak.swp deleted file mode 100644 index 386bf5186c5f5b00044fe432a30a900bd40cf751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI&J#W-77zc2d5s4Q86H`c8TZe!|l`~;P3^$$10uuNVbB@l5Bio^Os(_CIW5=$1 z1GbL+ENnbca^-|XRf!4lf22oF96PpuQijN$C$C;kqo?~%7{zVI&Ue}CclYkI^pLUI zYFXE^>>phg(<`?7w0R*vvTo^HSt#B)ek4hJojBuDDU5Q#;o^ixx8$6 zJc9rPt|V}SJx(7bebe3eL3H;HedGuTKmY;|fB*y_009U<;J*$6 zxv_;b+WL?kBnJt9c&w$@Z>#d7;A20*+pS@B`sZ=ue71F*omP}?b)?yEdd_KH3un8g z+#6;(Rb|!HGbLX*rJBi5d8DhLCao;Xs##=d(yk^k`3yWlD_Q0uRKckH(3$AsaJ}F| MB@N# Date: Thu, 24 May 2018 13:21:21 +0430 Subject: [PATCH 08/16] Create restfulpy --- .idea/inspectionProfiles/Project_Default.xml | 14 + .idea/misc.xml | 7 + .idea/modules.xml | 8 + .idea/urlshortener.iml | 18 + .idea/vcs.xml | 7 + .idea/workspace.xml | 593 ++++++++++++++++++ __pycache__/url_shortener.cpython-36.pyc | Bin 2692 -> 3013 bytes data/api-documents/api/index.md | 45 ++ data/api-documents/api/legend.md | 47 ++ data/logs/urlshortener-error.log | 0 data/logs/urlshortener.log | 0 .../__pycache__/index.mak.cpython-36.pyc | Bin 1228 -> 0 bytes .../successfully.mak.cpython-36.pyc | Bin 1281 -> 0 bytes setup.py | 36 ++ url_shortener.py | 1 + urlshortener.egg-info/PKG-INFO | 10 + urlshortener.egg-info/SOURCES.txt | 20 + urlshortener.egg-info/dependency_links.txt | 1 + urlshortener.egg-info/entry_points.txt | 3 + urlshortener.egg-info/requires.txt | 4 + urlshortener.egg-info/top_level.txt | 1 + urlshortener/__init__.py | 35 ++ .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 1220 bytes urlshortener/controllers/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 157 bytes .../__pycache__/helpers.cpython-36.pyc | Bin 0 -> 1138 bytes .../__pycache__/root.cpython-36.pyc | Bin 0 -> 1015 bytes .../__pycache__/urls.cpython-36.pyc | Bin 0 -> 1491 bytes urlshortener/controllers/helpers.py | 28 + urlshortener/controllers/root.py | 24 + urlshortener/controllers/urls.py | 43 ++ urlshortener/makomodules/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 157 bytes .../makomodules}/index.mak.py | 0 .../makomodules}/successfully.mak.py | 0 urlshortener/models/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 152 bytes urlshortener/models/urls.py | 17 + .../templates}/index.mak | 0 .../templates}/successfully.mak | 0 urlshortener/tests/__init__.py | 0 .../tests/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 151 bytes .../tests/__pycache__/helpers.cpython-36.pyc | Bin 0 -> 417 bytes .../__pycache__/test_root.cpython-36.pyc | Bin 0 -> 1051 bytes urlshortener/tests/helpers.py | 8 + urlshortener/tests/test_root.py | 18 + wsgi.py | 48 ++ 47 files changed, 1036 insertions(+) create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/urlshortener.iml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 data/api-documents/api/index.md create mode 100644 data/api-documents/api/legend.md create mode 100644 data/logs/urlshortener-error.log create mode 100644 data/logs/urlshortener.log delete mode 100644 makomodules/__pycache__/index.mak.cpython-36.pyc delete mode 100644 makomodules/__pycache__/successfully.mak.cpython-36.pyc create mode 100644 setup.py create mode 100644 urlshortener.egg-info/PKG-INFO create mode 100644 urlshortener.egg-info/SOURCES.txt create mode 100644 urlshortener.egg-info/dependency_links.txt create mode 100644 urlshortener.egg-info/entry_points.txt create mode 100644 urlshortener.egg-info/requires.txt create mode 100644 urlshortener.egg-info/top_level.txt create mode 100644 urlshortener/__init__.py create mode 100644 urlshortener/__pycache__/__init__.cpython-36.pyc create mode 100644 urlshortener/controllers/__init__.py create mode 100644 urlshortener/controllers/__pycache__/__init__.cpython-36.pyc create mode 100644 urlshortener/controllers/__pycache__/helpers.cpython-36.pyc create mode 100644 urlshortener/controllers/__pycache__/root.cpython-36.pyc create mode 100644 urlshortener/controllers/__pycache__/urls.cpython-36.pyc create mode 100644 urlshortener/controllers/helpers.py create mode 100644 urlshortener/controllers/root.py create mode 100644 urlshortener/controllers/urls.py create mode 100644 urlshortener/makomodules/__init__.py create mode 100644 urlshortener/makomodules/__pycache__/__init__.cpython-36.pyc rename {makomodules => urlshortener/makomodules}/index.mak.py (100%) rename {makomodules => urlshortener/makomodules}/successfully.mak.py (100%) create mode 100644 urlshortener/models/__init__.py create mode 100644 urlshortener/models/__pycache__/__init__.cpython-36.pyc create mode 100644 urlshortener/models/urls.py rename {templates => urlshortener/templates}/index.mak (100%) rename {templates => urlshortener/templates}/successfully.mak (100%) create mode 100644 urlshortener/tests/__init__.py create mode 100644 urlshortener/tests/__pycache__/__init__.cpython-36.pyc create mode 100644 urlshortener/tests/__pycache__/helpers.cpython-36.pyc create mode 100644 urlshortener/tests/__pycache__/test_root.cpython-36.pyc create mode 100644 urlshortener/tests/helpers.py create mode 100644 urlshortener/tests/test_root.py create mode 100644 wsgi.py diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..0a29b70 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f99b311 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fb066f6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/urlshortener.iml b/.idea/urlshortener.iml new file mode 100644 index 0000000..99c45df --- /dev/null +++ b/.idea/urlshortener.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..4d51f89 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..37f2ca9 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,593 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TemplateLookup + lookup + import urlshortener + + + $PROJECT_DIR$/../leo + $PROJECT_DIR$ + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +``` + + diff --git a/data/api-documents/api/legend.md b/data/api-documents/api/legend.md new file mode 100644 index 0000000..de1c0ab --- /dev/null +++ b/data/api-documents/api/legend.md @@ -0,0 +1,47 @@ + + +#### Legend + + +##### Paging + +| Param | Meaning | +| ------ | ------------------ | +| take | Rows per page | +| skip | Skip N rows | + + +##### Search & Filtering + +You can search and filter the result via query-string: + + /path/to/resource?field=[op]value1[,value2] + +| Operator | Meaning | Example | +| --------- | ------- | --------------- | +| | = | id=2 | +| ! | != | id=!2 | +| > | > | id=>2 | +| >= | >= | id=>=2 | +| < | < | id=<2 | +| <= | <= | id=<=2 | +| % | LIKE | title=u%s | +| ~,% | ILIKE | title=~u%s | +| IN() | IN | id=IN(2,3,4) | +| !IN() | NOT IN | id=!IN(2,3,4) | +| BETWEEN() | BETWEEN | id=BETWEEN(2,9) | + + +##### Sorting + +You can sort like this: + + + /path/to/resource?sort=[op]value + + +| Operator | Meaning | +| --------- | ------- | +| | ASC | +| \- | DESC | + diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log new file mode 100644 index 0000000..e69de29 diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log new file mode 100644 index 0000000..e69de29 diff --git a/makomodules/__pycache__/index.mak.cpython-36.pyc b/makomodules/__pycache__/index.mak.cpython-36.pyc deleted file mode 100644 index 888040591e29f9a54e360a630dd353eca16b6d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 zcmb7D&2A($5Oz=Z{G=z7WFsU52Q-@79N0#1n{-AjN)|T*@}_kAjVF&f1`{QejIu#3=dXk&H2 z{}PTl1;Y>vN+bgu$PVtv5QhQc!9|24uwC5cJ>2I5yu~^=W+5K32ye449nrzW8YN{hz=5`r_>N zMN%lq6R8R+C1uH#(wC;D8Bc1hE_h~5(&*9@O52L-#By1e)N+%Eit+2`l3w0!J-V(- zO(sMZco49FJM#bg29BA5xkDG|BDhEII=7$L&RxKQpMrNGL_>&0cMD_gBgJyAzbYGk&<3swVfjH#8531L`~0)| z`e3rr>s)C$mfRMK9ZpVPEzc%nnpvT$!^xw99@A!xv07F6{G_QHI|i9&Y4Q+y#OR@> zqVfs$rUsyvU)#yJq7r;4nT(Ss5dTRw%}NSLe@lVK;bi&nxlxiP9{5v>GyzdS)1;LO zlv``;(6sBeGg_8h6JtRvHzajq3UaOiirXXPTf#(U$*O^Q6P4>-Y0yi%nAECnv!F#k zQd%b-)0y8+?XHN04}rm_}r!+6?mkhb#7Jw5X=m=A&;?C9S+ H9PIuLm-cEe diff --git a/makomodules/__pycache__/successfully.mak.cpython-36.pyc b/makomodules/__pycache__/successfully.mak.cpython-36.pyc deleted file mode 100644 index 676d4f426310a90849a85006706f896f8c77ffa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1281 zcma)5&2HQ_5GM7vvb^iMPI}2{;Q~eXkjQX>AXqDl1c(y^K{i1)0SfjYa79{@P5pqR z>L096n^S>2NZuk(kppio%ibl5S$)?nK!A{}jM_diR&V{oupLhp#Ul zgjrSau&6Rx6qJRhl{`^3O?cQyp|VP9UUC^~UetnWu0qu$30LZ<5#sz#K~FBWzmFJ~ zswB@7+?E2L2eZxk45lJr7U&oq<0ZPZE+*PqV20n}OBT=JS^|G>I>N@UY09ZgmFZR1U5H5#Wt_4} zq;oC!VR!zxnCzYt=_&H~J zQ_MJhA~`P)y5MP+Ykp8u#_}>9@9))T2fJ%{+5Q!r=4bjg6?s~Y6JEk~!M@p=&`{C- z+QIt2&keiGa{&eJP9mjcRi=~K)kO~BR>#9k>v|l9qDrX9Dy7Hw_U`S47k8uZ>;5RL z*V2VR{M&C3g`F-?)Jjl;M!x9-l;AQ}8WNk$xNboBBT1nHx8wME%<@FX^9Fh`FO8jY zZ8qLaA00k^Iz4=3yi*B6Nn=BL6U22@cSlE_=_M8Dai(Pt8ixceRF|pqR}_@=uNOO{ z_ekD=(C5Sd*WJ*@RZ+1<{7Zk|sn5-(RX4#P9AFD(ANw#`>saz9h)+j5 z#%UpC`_`r18mBc|V9eI+^^2GBt3x3F>gn`}aav_$zg_Y=He{z|+4GAc#N>Mh diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..c8ca098 --- /dev/null +++ b/setup.py @@ -0,0 +1,36 @@ +import re +from os.path import join, dirname +from setuptools import setup, find_packages + + +# reading package version (same way the sqlalchemy does) +with open(join(dirname(__file__), 'urlshortener', '__init__.py')) as v_file: + package_version = re.compile(r".*__version__ = '(.*?)'", re.S).match(v_file.read()).group(1) + + +dependencies = [ + 'restfulpy >= 0.41.3', + 'hashids', + + # Deployment + 'gunicorn', + + # testing + 'nose' +] + + +setup( + name="urlshortener", + version=package_version, + author="Mohammad", + author_email="mohammadsheikhian70@gmail.com", + install_requires=dependencies, + packages=find_packages(), + test_suite="urlshortener.tests", + entry_points={ + 'console_scripts': [ + 'urlshortener = urlshortener:urlshortener.cli_main' + ] + } +) diff --git a/url_shortener.py b/url_shortener.py index c96ba8d..bdeed01 100644 --- a/url_shortener.py +++ b/url_shortener.py @@ -59,6 +59,7 @@ def resolve(self, hexstring): return db[key] + codec = Codec() diff --git a/urlshortener.egg-info/PKG-INFO b/urlshortener.egg-info/PKG-INFO new file mode 100644 index 0000000..1fa17e9 --- /dev/null +++ b/urlshortener.egg-info/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: urlshortener +Version: 0.1.0-planning.0 +Summary: UNKNOWN +Home-page: UNKNOWN +Author: Mohammad +Author-email: mohammadsheikhian70@gmail.com +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN diff --git a/urlshortener.egg-info/SOURCES.txt b/urlshortener.egg-info/SOURCES.txt new file mode 100644 index 0000000..b91a4b6 --- /dev/null +++ b/urlshortener.egg-info/SOURCES.txt @@ -0,0 +1,20 @@ +README.md +urlshortener/__init__.py +urlshortener.egg-info/PKG-INFO +urlshortener.egg-info/SOURCES.txt +urlshortener.egg-info/dependency_links.txt +urlshortener.egg-info/entry_points.txt +urlshortener.egg-info/requires.txt +urlshortener.egg-info/top_level.txt +urlshortener/controllers/__init__.py +urlshortener/controllers/helpers.py +urlshortener/controllers/root.py +urlshortener/controllers/urls.py +urlshortener/makomodules/__init__.py +urlshortener/makomodules/index.mak.py +urlshortener/makomodules/successfully.mak.py +urlshortener/models/__init__.py +urlshortener/models/urls.py +urlshortener/tests/__init__.py +urlshortener/tests/helpers.py +urlshortener/tests/test_root.py \ No newline at end of file diff --git a/urlshortener.egg-info/dependency_links.txt b/urlshortener.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/urlshortener.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/urlshortener.egg-info/entry_points.txt b/urlshortener.egg-info/entry_points.txt new file mode 100644 index 0000000..6681f2c --- /dev/null +++ b/urlshortener.egg-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +urlshortener = urlshortener:urlshortener.cli_main + diff --git a/urlshortener.egg-info/requires.txt b/urlshortener.egg-info/requires.txt new file mode 100644 index 0000000..8adcfc3 --- /dev/null +++ b/urlshortener.egg-info/requires.txt @@ -0,0 +1,4 @@ +restfulpy>=0.41.3 +hashids +gunicorn +nose diff --git a/urlshortener.egg-info/top_level.txt b/urlshortener.egg-info/top_level.txt new file mode 100644 index 0000000..6b72629 --- /dev/null +++ b/urlshortener.egg-info/top_level.txt @@ -0,0 +1 @@ +urlshortener diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py new file mode 100644 index 0000000..5449f53 --- /dev/null +++ b/urlshortener/__init__.py @@ -0,0 +1,35 @@ +from os.path import dirname, join + +from restfulpy import Application as BaseApplication +from .controllers.root import Root + +__version__ = '0.1.0-planning.0' + + +class Application(BaseApplication): + builtin_configuration = """ + messaging: + default_sender: NueMDv. + template_dirs: + - %(root_path)s/urlshortener/templates + + """ + + def __init__(self): + super().__init__( + 'urlshortener', + root=Root(), + root_path=join(dirname(__file__), '..'), + version=__version__, + ) + + # noinspection PyArgumentList + def insert_basedata(self): # pragma: no cover + raise NotImplementedError() + + # noinspection PyArgumentList + def insert_mockup(self): + raise NotImplementedError() + + +urlshortener = Application() diff --git a/urlshortener/__pycache__/__init__.cpython-36.pyc b/urlshortener/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f89f7ec056b15df66989e21a67cd6a558c585d30 GIT binary patch literal 1220 zcma)5OOMkq5VjMyNxLmu*yR9wph6&#!=^>tR%pc=ai9mdnS&K#x6Q8ez;<>;k94Iy z@k97axpLaSz=?7CP!@rNC66buJ>NIqjGy%T-C5H9bl*kjCu$4={xg{R4H%9%mMFy( zrw(oaO)+=4d*M^U32$8>+FJ3V?Mp-u^?;ABY?h1j?hr;Qw2o!~aa4Z}hg?jf zQW~a3#)Uc>PD=6q)mgaSH6jI0MleW4Z>|i7hr@@D6!2z6Wafb$l}hS)u8hcp8g1_A zZXG1HiP~Y;HcXq1egMXxB|542ksFuq5eUdJc(-$~G|yj+L2)9d!B8wom3XfrJ(6xhBly88meZ6rhoK+33G oN@&Z_w&|)1`xec!W=mw{)s^y}u2Ma=rLP-i;Pi0MA@1PrZ+~knsQ>@~ literal 0 HcmV?d00001 diff --git a/urlshortener/controllers/__init__.py b/urlshortener/controllers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/urlshortener/controllers/__pycache__/__init__.cpython-36.pyc b/urlshortener/controllers/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b8d3e47f7074459999523c066df7b7a07588bf5 GIT binary patch literal 157 zcmXr!<>mS!$QsQ61dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnFE9O!{M=Oi-29Bh z+}y+z{qp>x?BasN&ryk0@& UEe@O9{FKt1R6CFz#X!se0Bu4kfB*mh literal 0 HcmV?d00001 diff --git a/urlshortener/controllers/__pycache__/helpers.cpython-36.pyc b/urlshortener/controllers/__pycache__/helpers.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1c225558ffbfcce0ed35eacc0b40a4c5b049028 GIT binary patch literal 1138 zcmb7DKX2SN6elU2q|@na7bw!yX&NmV1Qb4?U5X+Ix^yTIcxli<83aarXX#9d0?C8x z!+EI!#2u3F(XYg{Q@=u|Jl^>NH(N;XJ@SY5|2_UNpQn#a^y;sGkblU%HNpGOc+3Wg zAc9KL(UNwoWL;1O)MHGBWr#eGlP)Tw9Tv*COUi^2U=YA`q$4d;F)34sfI=#wkzLT; zEgqRj-m!8frXqbq$_&EQ91<~uOl0qZ@<_1XNHPBx{gWba;Yzi=i}`CaaND?8w7TaV zoEOv`y@YO%+`zesUabYP*c*o5*c(G(fZ^=mClDBlp z1QqN}GSVBi^$7;&HHz$(SMuix9&?W5mTbwEzDH3@wx~EV{q2^m=tyo@e`?Wy4Mt{u zw4q>jvSlNEfNuVzHd@8ESoxb^8?2Hg>b|EtS1z^+Bd+ac@v?zjgIP7I% z*ASOofUOQ?b&-Z%fG$E8a(!W3ba}Ps`*6yS4XCi@;d0&AZhla%e9!+T|NZ*;ja}5L zw^~UF+AJE71M;)s+QnCz5BQk-svjXCK}z@ggr#(YRr29}jQ{MJR5h38`PrQ!MmhCS zTBW3M6OWoA&=1g({>qb6PaYyE*gf=X1l;i_#%Bl`KLdn4%=BaA8!X2kcG1{QqNB_w z0XNpZUj0j&(2Qm*qai&F Hk}p007CuA> literal 0 HcmV?d00001 diff --git a/urlshortener/controllers/__pycache__/root.cpython-36.pyc b/urlshortener/controllers/__pycache__/root.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81f091992688d44953c3a1f85bf8f2475f360951 GIT binary patch literal 1015 zcmZuw&5qMB5VjpBP19y6%a1s5;MPm46<357tppMh6#~J*9HOZ9s@b)ZV5iG&ui2O2 z5qKqEIqfTOVkRv#3u|enVb(x3>cS@9-2fXl)NEwAmeKyW5pF~xflU5lnEe-3fn-8 zW$=+qM>o)mOqu6rt}6Y(2j!ZRs%&hfwX%Rec?-Bt988tW6DmNyV^KX?scXhs0^L~ljo8@1r+}wg3v--*+oiXx4f+X0a9rf9+?_xUe zah8?2QCa4bEHjl{YmCQP_H~`>?TL*c*K_P_u})XD*gw}eOWJK-Y;8qyL-p$n8#7RzQzZ3_55G=13B zdJHF9UDzhU9;M5w?G?q5*-n6m5Iq3f3xLQp^>LY( z)v9Ugt%CUA#3Kt2{B*7Bt66V$7PYhZ|Fa`-ey~!yh9|V`jK#Zobfhd+zl(^EUuQGp7SQigC@+wCd#8G&SOdh7lBHeQ9h!iCVBcR5uu2#h=_WY@5r5= zE3JcsYizc>!ue7l24l%|pR9^euVEUQXwnl%!)Gp-LkH^^_0Q93Hgc)4rMBjxwsRNHOEXvXi3`lU{J}-Ct)MCwiTVuS zaZH@JHWFQ@aak<+G|mrYZO z=|!i{&9bcI6n2_$(I-u^+vhqo|3aJam5p|PEo6NF?8iqMp%Y@a4HVe1`_-=W{J zg(4#AQT!eZL=kYhMy{tGF%F0wSitWMwS2>#B2pAcp?BegegMjiR_%4SdJmoWJQ>#y zeGDST>bgDCpJ5DJ9@G;I$6A_B{UgzBQcwg6PC+8Jo(x4_??4_VMbVaxEDDzvMbn9u zLVH{kf3He4MD$a*LnEc`rSeHJpB{nQ0WmmE2}@G%so>{!Vf9BK1|hlOrQ}F2!34ho zI^}^31#r{bk%$12*iHV_>TX8XduCNt(wNhgQkREKd0yc(;KDDa_qbzKmLOLxUj&N~ z(_o^1aRT{FKZ1BhbI-k^7BCBes4MG2BvmzZi-5VIyfdyQL5Yu0yLd-KZr2ZTo+fS{(#W=`K z`Ul(Tq3~H2>o4%+m#Dr%m7v0+b%YAmx%l4?Y5XaTRsp;b$%&5+h}83{A=cYxMiPq(>U@_eA;FZi$q#{y^W85^^J?>>t7 E|7{INKL7v# literal 0 HcmV?d00001 diff --git a/urlshortener/controllers/helpers.py b/urlshortener/controllers/helpers.py new file mode 100644 index 0000000..28d7d37 --- /dev/null +++ b/urlshortener/controllers/helpers.py @@ -0,0 +1,28 @@ +from os.path import join, abspath, dirname +import functools +from mako.lookup import TemplateLookup +from nanohttp import action + +here = abspath(dirname(__file__)) +here = '/home/mohammad/workspace/urlshortener/urlshortener' +lookup = TemplateLookup(directories=[join(here, 'templates')], module_directory=join(here, 'makomodules')) + + +def render_template(func, template_name): + + @functools.wraps(func) + def wrapper(*args, **kwargs): + + result = func(*args, **kwargs) + if hasattr(result, 'to_dict'): + result = result.to_dict() + elif not isinstance(result, dict): + raise ValueError('The result must be an instance of dict, not: %s' % type(result)) + + template_ = lookup.get_template(template_name) + return template_.render(**result) + + return wrapper + + +template = functools.partial(action, content_type='text/html', inner_decorator=render_template) \ No newline at end of file diff --git a/urlshortener/controllers/root.py b/urlshortener/controllers/root.py new file mode 100644 index 0000000..457e3f2 --- /dev/null +++ b/urlshortener/controllers/root.py @@ -0,0 +1,24 @@ +from nanohttp import json, RestController +from restfulpy.controllers import JsonPatchControllerMixin, RootController + +import urlshortener +from .helpers import template +from .urls import UrlController + + +class ApiV1(JsonPatchControllerMixin, RestController): + urls = UrlController() + + @json + def version(self): + return { + 'version': urlshortener.__version__ + } + + +class Root(RootController): + apiv1 = ApiV1() + + @template('index.mak') + def index(self): + return dict() diff --git a/urlshortener/controllers/urls.py b/urlshortener/controllers/urls.py new file mode 100644 index 0000000..d2210cf --- /dev/null +++ b/urlshortener/controllers/urls.py @@ -0,0 +1,43 @@ +import binascii +import hashlib + +from nanohttp import RestController, HttpNotFound, context, HttpFound, text + +from .helpers import template + +db = {} + + +class Codec: + + def store(self, url): + if not url.startswith('http'): + url = f'http://{url}' + + key = hashlib.sha1(url.encode()).digest() + if key not in db: + db[key] = url + + return binascii.hexlify(key).decode() + + def resolve(self, hexstring): + hexstring = hexstring.encode() + key = binascii.unhexlify(hexstring) + if key not in db: + raise HttpNotFound() + + return db[key] + + +codec = Codec() + + +class UrlController(RestController): + + @template('successfully.mak') + def post(self): + return dict(hash_id=codec.store(context.form.get('url'))) + + @text + def get(self, hexstring): + raise HttpFound(codec.resolve(hexstring)) diff --git a/urlshortener/makomodules/__init__.py b/urlshortener/makomodules/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/urlshortener/makomodules/__pycache__/__init__.cpython-36.pyc b/urlshortener/makomodules/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c56ddc0cc61b885afcd862b0aa56e08458f72187 GIT binary patch literal 157 zcmXr!<>lHa!y3&11dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnFE9O!{M=Oi-29Bh z+}y+z{qp>x?BasN&ryk0@& QEe;!qs2#|TVjyM!07!@_G5`Po literal 0 HcmV?d00001 diff --git a/makomodules/index.mak.py b/urlshortener/makomodules/index.mak.py similarity index 100% rename from makomodules/index.mak.py rename to urlshortener/makomodules/index.mak.py diff --git a/makomodules/successfully.mak.py b/urlshortener/makomodules/successfully.mak.py similarity index 100% rename from makomodules/successfully.mak.py rename to urlshortener/makomodules/successfully.mak.py diff --git a/urlshortener/models/__init__.py b/urlshortener/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/urlshortener/models/__pycache__/__init__.cpython-36.pyc b/urlshortener/models/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..05bb820c901bf485699bf785b7412ef0638c7fb1 GIT binary patch literal 152 zcmXr!<>gWlV2x$~g2x~N1{i@12OutH0TL+;!3>&=ek&P@K*9*(m#cn8er~FMZhl5$ zZf;_VetCXTc5y*sa;ko5QBHA2eo;wkUTP64CpSMOHK$lVK0Y%qvm`!Vub}c4hYe7$ OG$+*#WPC9YGXMY&DJFLS literal 0 HcmV?d00001 diff --git a/urlshortener/models/urls.py b/urlshortener/models/urls.py new file mode 100644 index 0000000..3ac8d11 --- /dev/null +++ b/urlshortener/models/urls.py @@ -0,0 +1,17 @@ +from sqlalchemy import create_engine, Column, Integer, String, Sequence +from sqlalchemy.ext.declarative import declarative_base + + +engine = create_engine('sqlite:///db.sqlite', echo=True) +Base = declarative_base() + + +class Url(Base): + __tablename__ = 'urls' + + id = Column(Integer, Sequence('url_id_seq'), primary_key=True) + url = Column(String(50)) + + def __repr__(self): + return "" % ( + self.url) diff --git a/templates/index.mak b/urlshortener/templates/index.mak similarity index 100% rename from templates/index.mak rename to urlshortener/templates/index.mak diff --git a/templates/successfully.mak b/urlshortener/templates/successfully.mak similarity index 100% rename from templates/successfully.mak rename to urlshortener/templates/successfully.mak diff --git a/urlshortener/tests/__init__.py b/urlshortener/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/urlshortener/tests/__pycache__/__init__.cpython-36.pyc b/urlshortener/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee18b22ca05e009396fc7075925432d87ef169c8 GIT binary patch literal 151 zcmXr!<>lhDV2x$~g2x~N1{i@12OutH0TL+;!3>&=ek&P@K*9*(my3Qzer~FMZhl5$ zZf;_VetCXTc5y*sa;ko5QBHA2eo;wkUTP64rzEwwq*y;bJ~J<~BtBlRpz;=nO>TZl OX-=vg$n;_$W&i;3!zMQX literal 0 HcmV?d00001 diff --git a/urlshortener/tests/__pycache__/helpers.cpython-36.pyc b/urlshortener/tests/__pycache__/helpers.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f56df9a162cd53465deba8b10afc984c33468323 GIT binary patch literal 417 zcmY*Vy-ve05cW?3p-l&ncn7jH11mz6Ixrv@013$qmZ=X?u;XASLY-meA=r4OtW3ND z6XzBRoOGYR^WAs$-Tr7acsWk5UI`)Z=xa-mP0+(0f+m_8VyU1sa%PxdM?`a-JQJM& zed2;^c20`)1FK0v``r_#!JI*8r@qq{@l*j$XEFU_6v+fV>>vOUR1?8~-*J&>ip^L* zyoBquwn+O-%34{FvL8rko$gHJxs(r`GT)iJ^Cnczw@`!chpK7Je5TsDtKW#sucS{APrx`TfU=4e+kd4ptK##=V5N|D0v~3jS$Q#YCh+_TLLOxx z^1a$|9w(ab6%k`eKJCAHSzPRS4XhI(GdJTp7Hr^s`glC@+-RZ`kqVQ# zRhjCLP)fsXeo^p==8V?f8zeh$;kO5VEHdtAB95{wV*a_1b5%qW{-93}4Go2rZzPp4 zS-Zue>aMIQuRV{T#pOaj8xQ)ZeSY+Eaj0nVZ%r?j_OIc1(`Q##yfPQZ$dlIAIeTVMHj1QF($ jtN`RTxGURWG%BtLn6i}<)NF_5K`BGgu{vaD%fWvEO|Bii literal 0 HcmV?d00001 diff --git a/urlshortener/tests/helpers.py b/urlshortener/tests/helpers.py new file mode 100644 index 0000000..8f44909 --- /dev/null +++ b/urlshortener/tests/helpers.py @@ -0,0 +1,8 @@ +from restfulpy.testing import ModelRestCrudTestCase + +import urlshortener + + +class WebTestCase(ModelRestCrudTestCase): + application = urlshortener.urlshortener + diff --git a/urlshortener/tests/test_root.py b/urlshortener/tests/test_root.py new file mode 100644 index 0000000..7b2b6d8 --- /dev/null +++ b/urlshortener/tests/test_root.py @@ -0,0 +1,18 @@ +import unittest + +from urlshortener.tests import helpers + + +class RootTestCase(helpers.WebTestCase): + url = '/' + + def test_get_root(self): + + # Get template + result, ___ = self.request('user', 'GET', self.url) + expected_result = b'\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n
\n
\n\n\n' + self.assertEquals(result, expected_result) + + +if __name__ == '__main__': # pragma: no cover + unittest.main() diff --git a/wsgi.py b/wsgi.py new file mode 100644 index 0000000..ef8e6c6 --- /dev/null +++ b/wsgi.py @@ -0,0 +1,48 @@ +import os + +from urlshortener import urlshortener + +urlshortener.configure() +urlshortener.initialize_models() + + +verbs = [ + 'GET', + 'HEAD', + 'POST', + 'PUT', + 'DELETE', + 'CONNECT', + 'OPTIONS', + 'TRACE', + 'PATCH', + 'SEARCH', + 'METADATA', + 'SUBMIT', +] + +http_headers = [ + 'X-Pagination-Count', + 'X-Pagination-Take', + 'X-Pagination-Skip', + 'X-Identity', + 'X-New-JWT-Token', + 'ETag', + 'X-Reason' +] + + +def cross_origin_helper_app(environ, start_response): + + def better_start_response(status, headers): + headers.append(('Access-Control-Allow-Origin', os.environ.get('TRUSTED_HOSTS', '*'))) + headers.append(('Access-Control-Allow-Headers', 'Content-Type, Authorization')) + headers.append(('Access-Control-Allow-Credentials', 'true')) + headers.append(('Access-Control-Allow-Methods', ', '.join(verbs))) + headers.append(('Access-Control-Expose-Headers', ', '.join(http_headers))) + start_response(status, headers) + + return urlshortener(environ, better_start_response) + + +app = cross_origin_helper_app From 29a91880a04de8fca2cbdea991107c3aa05b7f85 Mon Sep 17 00:00:00 2001 From: Mohammad Date: Sun, 27 May 2018 09:57:30 +0430 Subject: [PATCH 09/16] New pc --- .coverage | 1 + .idea/misc.xml | 2 +- .idea/urlshortener.iml | 5 +- .idea/workspace.xml | 526 ++++++++++++++---- .ropeproject/globalnames | Bin 318 -> 2434 bytes __pycache__/url_shortener.cpython-36.pyc | Bin 3013 -> 0 bytes data/api-documents/api/index.md | 27 +- data/logs/urlshortener-error.log | 30 + data/logs/urlshortener.log | 30 + requirements-dev.txt | 2 + setup.py | 12 +- urlshortener.egg-info/SOURCES.txt | 1 + urlshortener.egg-info/requires.txt | 1 + urlshortener/__init__.py | 1 + .../__pycache__/__init__.cpython-36.pyc | Bin 1220 -> 1220 bytes .../__pycache__/helpers.cpython-36.pyc | Bin 1138 -> 1090 bytes .../__pycache__/root.cpython-36.pyc | Bin 1015 -> 2346 bytes .../__pycache__/urls.cpython-36.pyc | Bin 1491 -> 1461 bytes urlshortener/controllers/helpers.py | 5 +- urlshortener/controllers/root.py | 52 +- urlshortener/controllers/urls.py | 6 +- .../__pycache__/index.mak.cpython-36.pyc | Bin 0 -> 1226 bytes urlshortener/makomodules/index.mak.py | 8 +- urlshortener/models/urls.py | 1 + urlshortener/templates/index.mak | 2 +- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 151 -> 151 bytes .../tests/__pycache__/helpers.cpython-36.pyc | Bin 417 -> 410 bytes .../__pycache__/test_root.cpython-36.pyc | Bin 1051 -> 730 bytes urlshortener/tests/helpers.py | 5 +- urlshortener/tests/test_root.py | 11 +- wsgi.py | 48 -- 31 files changed, 560 insertions(+), 216 deletions(-) create mode 100644 .coverage delete mode 100644 __pycache__/url_shortener.cpython-36.pyc create mode 100644 requirements-dev.txt create mode 100644 urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc delete mode 100644 wsgi.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000..fbaff0a --- /dev/null +++ b/.coverage @@ -0,0 +1 @@ +!coverage.py: This is a private format, don't read it directly!{"lines":{"/home/mohammad/workspace/urlshortener/urlshortener/__init__.py":[1,3,4,6,9,16,18,27,31,35,19,20,21,22,23],"/home/mohammad/workspace/urlshortener/urlshortener/controllers/__init__.py":[1],"/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py":[1,2,4,5,6,9,10,12,19,20,22],"/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py":[1,2,3,4,6,7,10,27,12,24],"/home/mohammad/workspace/urlshortener/urlshortener/controllers/urls.py":[1,2,4,6,8,11,13,23,32,35,37,41],"/home/mohammad/workspace/urlshortener/urlshortener/makomodules/__init__.py":[1],"/home/mohammad/workspace/urlshortener/urlshortener/models/__init__.py":[1],"/home/mohammad/workspace/urlshortener/urlshortener/tests/__init__.py":[1],"/home/mohammad/workspace/urlshortener/urlshortener/tests/test_root.py":[1,4],"/home/mohammad/workspace/urlshortener/urlshortener/models/urls.py":[],"/home/mohammad/workspace/urlshortener/urlshortener/tests/helpers.py":[]}} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index f99b311..e29fe6a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/.idea/urlshortener.iml b/.idea/urlshortener.iml index 99c45df..2a4ca5c 100644 --- a/.idea/urlshortener.iml +++ b/.idea/urlshortener.iml @@ -2,9 +2,12 @@ - + + + @@ -131,7 +183,25 @@ - + + + + + + + + + + + + + + + + + + + - - - - - +Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/restfulpy/controllers.py", line 18, in __call__ + return super().__call__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 81, in __call__ + handler, remaining_paths = self._find_handler(list(remaining_paths)) +TypeError: 'method' object is not iterable ``` diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log index e69de29..eda5247 100644 --- a/data/logs/urlshortener-error.log +++ b/data/logs/urlshortener-error.log @@ -0,0 +1,30 @@ +2018-05-26 13:40:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/restfulpy/controllers.py", line 18, in __call__ + return super().__call__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 66, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Non-hexadecimal digit found +2018-05-26 13:55:03 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/restfulpy/controllers.py", line 18, in __call__ + return super().__call__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 66, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Non-hexadecimal digit found diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log index e69de29..eda5247 100644 --- a/data/logs/urlshortener.log +++ b/data/logs/urlshortener.log @@ -0,0 +1,30 @@ +2018-05-26 13:40:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/restfulpy/controllers.py", line 18, in __call__ + return super().__call__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 66, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Non-hexadecimal digit found +2018-05-26 13:55:03 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/restfulpy/controllers.py", line 18, in __call__ + return super().__call__(*remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 66, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Non-hexadecimal digit found diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..a6c88f5 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,2 @@ +nose +coverage diff --git a/setup.py b/setup.py index c8ca098..df15af1 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ # reading package version (same way the sqlalchemy does) with open(join(dirname(__file__), 'urlshortener', '__init__.py')) as v_file: - package_version = re.compile(r".*__version__ = '(.*?)'", re.S).match(v_file.read()).group(1) + package_version = re.compile('.*__version__ = \'(.*?)\'', re.S).match(v_file.read()).group(1) dependencies = [ @@ -16,21 +16,23 @@ 'gunicorn', # testing + 'webtest', 'nose' ] setup( - name="urlshortener", + name='urlshortener', version=package_version, - author="Mohammad", - author_email="mohammadsheikhian70@gmail.com", + author='Mohammad', + author_email='mohammadsheikhian70@gmail.com', install_requires=dependencies, packages=find_packages(), - test_suite="urlshortener.tests", + test_suite='urlshortener.tests', entry_points={ 'console_scripts': [ 'urlshortener = urlshortener:urlshortener.cli_main' ] } ) + diff --git a/urlshortener.egg-info/SOURCES.txt b/urlshortener.egg-info/SOURCES.txt index b91a4b6..008ce05 100644 --- a/urlshortener.egg-info/SOURCES.txt +++ b/urlshortener.egg-info/SOURCES.txt @@ -1,4 +1,5 @@ README.md +setup.py urlshortener/__init__.py urlshortener.egg-info/PKG-INFO urlshortener.egg-info/SOURCES.txt diff --git a/urlshortener.egg-info/requires.txt b/urlshortener.egg-info/requires.txt index 8adcfc3..06ef995 100644 --- a/urlshortener.egg-info/requires.txt +++ b/urlshortener.egg-info/requires.txt @@ -1,4 +1,5 @@ restfulpy>=0.41.3 hashids gunicorn +webtest nose diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py index 5449f53..9f4d6c4 100644 --- a/urlshortener/__init__.py +++ b/urlshortener/__init__.py @@ -33,3 +33,4 @@ def insert_mockup(self): urlshortener = Application() + diff --git a/urlshortener/__pycache__/__init__.cpython-36.pyc b/urlshortener/__pycache__/__init__.cpython-36.pyc index f89f7ec056b15df66989e21a67cd6a558c585d30..22a73cd66ba443931f6f61457169e3cb3fce4980 100644 GIT binary patch delta 18 ZcmX@Yd4!YGn3tE!N1iiUc_Zg;762;i1ZDsL delta 18 ZcmX@Yd4!YGn3tC;J(De3X(Q)u762|31jhgX diff --git a/urlshortener/controllers/__pycache__/helpers.cpython-36.pyc b/urlshortener/controllers/__pycache__/helpers.cpython-36.pyc index d1c225558ffbfcce0ed35eacc0b40a4c5b049028..17977b62d6b4ceca6018407cbacf38d0aefd1997 100644 GIT binary patch delta 100 zcmeywafn0Nn3tDpmojH`6f*I~adFK=Wh-9BROVF9X2ulOW~OGwi5cb0 rOnQ2og&2P_GV)C3VQyjMnmm#DtPmeiy$B-*BM&1FlMtg6Glw7mpZ^gd delta 101 zcmX@a@rgs(n3tDJwwNutlbM0xF#{4{1+pE0xVUPfvK2RTDrYleGh-B23hTtIaz>-c s-AqOspZsKGU37ZmNie~H(g@)z1mXQ5E?D#@9K0M54hf@R3X+->|u=E3@;nQ2L;*w5*FlNYj6)^ zcFSYPh#Yg{2hjg1)!A&L{$qZe=Gy79(l`Ey_iaY60`XFS6LEW$4rS=fLD1 z4D~J$K@h>%;gmb4BzC#W8TU@$4D}cYsuiT9&mBtEPD6mw zxx?Lts@t5c=^x}z=Q-8x9OiScAq}1T4SDXaUEMkA$cJmHJ8SnY(ZRgC2CaG65HRdb zoRnT+d8rma18i9~!1+>Avwr zmBA&9&+{h`3ghrY6CCDMs|2`Pc z>Qao$dX|=D%E!-Yd88KL-59p3SuM4wguJ}K5VyfsV+ny9El!N5bS=dYVMIb`pZGMS zp|eW^8aS(-#eHOVU7(N1V5QVj)UBLC0W(|1(xUZd?h$o#y zp1cMcau0~#& zXEkV@KHC8%O^_s2T8bnwVUm$(blgB5Fa~^4vOo8&3NihO%|zt_Iff=u8b`@gYd%M@T+Kg8L+D zZJo5i;1dvh3d0^3xDwZ|Apkt0CO|d_K-Xd~$&^|og4h#27AE$+Qz*o^18X1Fw$s5n z5Z$)J!908kwI25Xik@NEZ7z}!UB!W@E4+q=G=x*=5tDms0B}vG&Lg6s8O&XjSUB5q zX2vZj$nICRIzX_N4Z6lI!Mkc7!1)iVVRt(zoSkt&rWn{1R{ zfc>w~5g!N?5oF?O7u_9QI(F3s8{&9Wrbm~;k123)uCAe!z*i_0Y8cNm{pR2r_leM7 zqY|P(oK;}$0dqA}%PbR0O_xP+@|rPBU~3H1R1>UO?2B`c14sa%^E*Q2PUPDlk03nQ z#*&;zz8nL`c-Wq@wp{Q*G;CVSQhsT7zbOq3ThvN_3-WVUyVh0YUJ56M(t5TFlh!i~ zTti>L)6hcVN<>)hBf(ld3zWQtj7{Cz>__>180S{|*6LYTi24$fW-IqGn`19s*p~XTp+s=o>!RuSI(V)jq>Gc$RwtJM?&>1J(!_V9fP7Zgd&96}$UaJK ugT*e^f`_-YzHFg(QRybQ+cwGXC~Q;MtMN6sMTbrR$=!FDyR+xJyW#(QgZldb literal 1015 zcmZuw&5qMB5VjpBP19y6%a1s5;MPm46<357tppMh6#~J*9HOZ9s@b)ZV5iG&ui2O2 z5qKqEIqfTOVkRv#3u|enVb(x3>cS@9-2fXl)NEwAmeKyW5pF~xflU5lnEe-3fn-8 zW$=+qM>o)mOqu6rt}6Y(2j!ZRs%&hfwX%Rec?-Bt988tW6DmNyV^KX?scXhs0^L~ljo8@1r+}wg3v--*+oiXx4f+X0a9rf9+?_xUe zah8?2QCa4bEHjl{YmCQP_H~`>?TL*c*K_P_u})XD*gw}eOWJK-Y;8qyL-p$n8#7RzQzZ3_55G=13B zdJHF9UDzhU9;M5w?G?q5*-n6m5Iq3f3xLQp^>LY( z)v9Ugt%CUA#3Kt2{B*7Bt66V$7PYhZ|Fa`-ey~!yh9|V`jK#Zobfhd+zl(^EUurPO(Lcab|J({D;qE1v9Xvf)IA8hSX-=5;CT;0!MuoF z8Vf7mz|u+QzaDBSP`4#Sd1cC1AX!WSRr`)YNx#yITQes@o`Sr<-dlk0)X>7)o( hb`}lQ>wzBiwpYo_KgeTM&h=GjGDV*XVzbeW%pd<#FzEmQ delta 288 zcmYjMyGq1R5S_WNBzu$KB9g{J+^mpJ5IaFTx6)#<8Qa-H%x#jwMvx``!L9rNTR}lT z!^Tgr5dXr7HV&LKXAXxM=GA}ryMv;bJoN7JMgx4pzcQjv1U(BeFt$K{9SLPttqPiS zFl2%y8yvZiP=dgkO`C>{GK4Fj$tkd9cMt3aMSkT6pj^C!Q}H&_l^!$|j7w;;Z#e~L z&+8||BJQgJvQH}TyZ`njmija0|At!CYh=$W7& n-$>Pl`E{DIo66kfLh;xh$(~!gSK$~e#~`L^Tjk2=a?9x-NoO(C diff --git a/urlshortener/controllers/helpers.py b/urlshortener/controllers/helpers.py index 28d7d37..12ddf33 100644 --- a/urlshortener/controllers/helpers.py +++ b/urlshortener/controllers/helpers.py @@ -3,8 +3,7 @@ from mako.lookup import TemplateLookup from nanohttp import action -here = abspath(dirname(__file__)) -here = '/home/mohammad/workspace/urlshortener/urlshortener' +here = abspath(join(dirname(__file__), '..')) lookup = TemplateLookup(directories=[join(here, 'templates')], module_directory=join(here, 'makomodules')) @@ -25,4 +24,4 @@ def wrapper(*args, **kwargs): return wrapper -template = functools.partial(action, content_type='text/html', inner_decorator=render_template) \ No newline at end of file +template = functools.partial(action, content_type='text/html', inner_decorator=render_template) diff --git a/urlshortener/controllers/root.py b/urlshortener/controllers/root.py index 457e3f2..a737c14 100644 --- a/urlshortener/controllers/root.py +++ b/urlshortener/controllers/root.py @@ -1,13 +1,43 @@ -from nanohttp import json, RestController +import binascii +import hashlib + +from nanohttp import json, RestController, HttpNotFound, context, HttpFound, text from restfulpy.controllers import JsonPatchControllerMixin, RootController import urlshortener from .helpers import template from .urls import UrlController +db = {} + + +class Codec: + + def store(self, url): + from pudb import set_trace; set_trace() + if not url.startswith('http'): + url = f'http://{url}' + + key = hashlib.sha1(url.encode()).digest() + if key not in db: + db[key] = url + + return binascii.hexlify(key).decode() + + def resolve(self, hexstring): + hexstring = hexstring.encode() + key = binascii.unhexlify(hexstring) + if key not in db: + raise HttpNotFound() + + return db[key] + + +codec = Codec() + class ApiV1(JsonPatchControllerMixin, RestController): - urls = UrlController() + # urls = UrlController() @json def version(self): @@ -16,9 +46,23 @@ def version(self): } -class Root(RootController): +class Root(RestController): apiv1 = ApiV1() + def _find_handler(self, remaining_paths): + if len(remaining_paths) > 0: + return self.resolve, remaining_paths + return super()._find_handler(remaining_paths) + @template('index.mak') - def index(self): + def get(self): return dict() + + @template('successfully.mak') + def post(self): + return dict(hash_id=codec.store(context.form.get('url'))) + + @text + def resolve(self, hexstring): + raise HttpFound(codec.resolve(hexstring)) + diff --git a/urlshortener/controllers/urls.py b/urlshortener/controllers/urls.py index d2210cf..845a15c 100644 --- a/urlshortener/controllers/urls.py +++ b/urlshortener/controllers/urls.py @@ -1,5 +1,4 @@ -import binascii -import hashlib + from nanohttp import RestController, HttpNotFound, context, HttpFound, text @@ -9,7 +8,7 @@ class Codec: - + def store(self, url): if not url.startswith('http'): url = f'http://{url}' @@ -41,3 +40,4 @@ def post(self): @text def get(self, hexstring): raise HttpFound(codec.resolve(hexstring)) + diff --git a/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc b/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e72982000682a4351c7ae42fb8c293d777098317 GIT binary patch literal 1226 zcmbVL&2HQ_5GEzhHAp&SUVNK3RuQ6Q=K z2hPd8_Cfj@eTW`-?J2L2Q%5V;-nO@r;9xlVW;pX{=J{w8e)IL<{TCgC{zPlb1N{XY za}0tZh6^Ndf~A*u(ocMhI6e!K0AwfW@NUxM{bazrBxHUvWI?jQI?0H2lTFr3wlb7# zvpyUAf|5rpT%hUj6GTN*-}Q7|S|PdXor=P8ZCod%Y0f`|@I4Dpz8k*!{g3ZYu3tvE zl01?sr&3ZDT_}BSDw^`B)`iKHw!Gx}pBKwzRZz=KBud6FpGtauJ-An0hniG~6gQc` z0s>I;=xaD;7sL%ZLudFFee|xsvfd45_*eYV2dfXZ;3i<+EyjrXixwH&B8+|ps-V1J zKElX)o5fbxg3sRRVtk)_9JR(cT0z2iso2#l9N(>&i4S9A zuL{0DS<>`8)2c4nlT;N-?;a?Yas5M4^S#z^kqgWBD$1BBv)yOkR+oE|wOFT0%dzA( zS8RWB{AO`78Pn7XRqjusb)2zUmD%j5u4+35qIcuy&UBwwlU^*!24Jr$NY3(0I~kW$ zf(|Z|arE%;f54_*N&)Z>6ms96EbgvrE^*W(`w$|IfC%6*YUu&CR=hei?YNDU76sSD zSRlv^NmZMioN7qLZ4>enVIs9;Swo|V(seI1aHL&GDpj>82+>Pb*;Jr=&;d!u{}I#!dW#_gsbH$fmAVh>IqcHrqp zV3|*MT+l?(&A4j65djD{csD;de0elKJaC(flQ+lY?I9T69?gGrLBoO`HmL4hIXg|6 zt$t6>h)9}=l$5nx0!y0&5*4R{GqM`j4Z=&hEI7ESD%l}_&l-U-hA+VQ=)qQN0YAW~ vTBjWRQixP$u21-71%qo=rL0(76HVE!AGh?(n)1w-ARgl`?BL(q?{EDD)K+FI literal 0 HcmV?d00001 diff --git a/urlshortener/makomodules/index.mak.py b/urlshortener/makomodules/index.mak.py index 534ec77..e9bc1ea 100644 --- a/urlshortener/makomodules/index.mak.py +++ b/urlshortener/makomodules/index.mak.py @@ -5,9 +5,9 @@ __M_dict_builtin = dict __M_locals_builtin = locals _magic_number = 10 -_modified_time = 1526721920.9077945 +_modified_time = 1527326764.7707543 _enable_loop = True -_template_filename = '/home/mohammad/workspace/projects/urlshortner/templates/index.mak' +_template_filename = '/home/mohammad/workspace/urlshortener/urlshortener/templates/index.mak' _template_uri = 'index.mak' _source_encoding = 'ascii' _exports = [] @@ -18,7 +18,7 @@ def render_body(context,**pageargs): try: __M_locals = __M_dict_builtin(pageargs=pageargs) __M_writer = context.writer() - __M_writer('\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n
\n
\n\n\n') + __M_writer('\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n
\n
\n\n\n') return '' finally: context.caller_stack._pop_frame() @@ -26,6 +26,6 @@ def render_body(context,**pageargs): """ __M_BEGIN_METADATA -{"filename": "/home/mohammad/workspace/projects/urlshortner/templates/index.mak", "uri": "index.mak", "source_encoding": "ascii", "line_map": {"16": 0, "21": 1, "27": 21}} +{"filename": "/home/mohammad/workspace/urlshortener/urlshortener/templates/index.mak", "uri": "index.mak", "source_encoding": "ascii", "line_map": {"16": 0, "21": 1, "27": 21}} __M_END_METADATA """ diff --git a/urlshortener/models/urls.py b/urlshortener/models/urls.py index 3ac8d11..226b04f 100644 --- a/urlshortener/models/urls.py +++ b/urlshortener/models/urls.py @@ -15,3 +15,4 @@ class Url(Base): def __repr__(self): return "" % ( self.url) + diff --git a/urlshortener/templates/index.mak b/urlshortener/templates/index.mak index b03a6f0..50133ee 100644 --- a/urlshortener/templates/index.mak +++ b/urlshortener/templates/index.mak @@ -2,7 +2,7 @@ Url shortener
-
+ Iuput url: diff --git a/urlshortener/tests/__pycache__/__init__.cpython-36.pyc b/urlshortener/tests/__pycache__/__init__.cpython-36.pyc index ee18b22ca05e009396fc7075925432d87ef169c8..1d2676a3dd1248434c2eb2b558a22a1c9a2a073e 100644 GIT binary patch delta 15 WcmbQvIGvH*n3tDJmx*&C`vd?Nr~>Z* delta 15 WcmbQvIGvH*n3tD}&w_O#`vd?N>;nP- diff --git a/urlshortener/tests/__pycache__/helpers.cpython-36.pyc b/urlshortener/tests/__pycache__/helpers.cpython-36.pyc index f56df9a162cd53465deba8b10afc984c33468323..98e1c1f1da314b287decb0c456fcf426bb1d7fe1 100644 GIT binary patch delta 38 ucmZ3;Jd2srn3tE!n1eHV>O@X|cE0e`B*%h+iD`Ej*(WJ{)Z!B7qSBO!@pl;6CfhJZGc$280{|zO B4730M diff --git a/urlshortener/tests/__pycache__/test_root.cpython-36.pyc b/urlshortener/tests/__pycache__/test_root.cpython-36.pyc index eea2e2ac50c29d93bc88d2a521970c74c28755a9..921c5637d8aec0a003399f9479134e4cb5e58d06 100644 GIT binary patch delta 408 zcmZXOze)o^5XN_J_x>d2ObS6Gc2~$Xu~5WPkYHsR1LCDPF1e8;USgcx1B-}79zesD zK7ntcPhh{Tl@B2}rwEDz^D#5b@8f&)j2-Oye)VOe(tF^Hy|G^-E`rz~{dOQsWYvvLOgE+~DJC|If<-(S8q?^2mr6LBjzn~Rc}v$33W zZ7(e18S!?<$Xo#$aop}AgXfH*$hyj^@Cx9CL<@wX!_5( N_z>%^sEJ0^S$Q#YCh+_TLLOxx z^1a$|9w(ab6%k`eKJCAHSzPRS4XhI(GdJTp7Hr^s`glC@+-RZ`kqVQ# zRhjCLP)fsXeo^p==8V?f8zeh$;kO5VEHdtAB95{wV*a_1b5%qW{-93}4Go2rZzPp4 zS-Zue>aMIQuRV{T#pOaj8xQ)ZeSY+Eaj0nVZ%r?j_OIc1(`Q##yfPQZ$dlIAIeTVMHj1QF($ jtN`RTxGURWG%BtLn6i}<)NF_5K`BGgu{vaD%fWvEO|Bii diff --git a/urlshortener/tests/helpers.py b/urlshortener/tests/helpers.py index 8f44909..5dc454f 100644 --- a/urlshortener/tests/helpers.py +++ b/urlshortener/tests/helpers.py @@ -1,8 +1,9 @@ -from restfulpy.testing import ModelRestCrudTestCase +from restfulpy.testing import WebAppTestCase + import urlshortener -class WebTestCase(ModelRestCrudTestCase): +class WebTestCase(WebAppTestCase): application = urlshortener.urlshortener diff --git a/urlshortener/tests/test_root.py b/urlshortener/tests/test_root.py index 7b2b6d8..7ee8652 100644 --- a/urlshortener/tests/test_root.py +++ b/urlshortener/tests/test_root.py @@ -1,18 +1,17 @@ import unittest -from urlshortener.tests import helpers +from urlshortener.tests.helpers import WebTestCase -class RootTestCase(helpers.WebTestCase): + +class RootTestCase(WebTestCase): url = '/' def test_get_root(self): - # Get template - result, ___ = self.request('user', 'GET', self.url) - expected_result = b'\nUrl shortener\n\n
\n \n Iuput url:\n \n \n \n
\n\n\n' - self.assertEquals(result, expected_result) + self.request('user', 'GET', self.url) if __name__ == '__main__': # pragma: no cover unittest.main() + diff --git a/wsgi.py b/wsgi.py deleted file mode 100644 index ef8e6c6..0000000 --- a/wsgi.py +++ /dev/null @@ -1,48 +0,0 @@ -import os - -from urlshortener import urlshortener - -urlshortener.configure() -urlshortener.initialize_models() - - -verbs = [ - 'GET', - 'HEAD', - 'POST', - 'PUT', - 'DELETE', - 'CONNECT', - 'OPTIONS', - 'TRACE', - 'PATCH', - 'SEARCH', - 'METADATA', - 'SUBMIT', -] - -http_headers = [ - 'X-Pagination-Count', - 'X-Pagination-Take', - 'X-Pagination-Skip', - 'X-Identity', - 'X-New-JWT-Token', - 'ETag', - 'X-Reason' -] - - -def cross_origin_helper_app(environ, start_response): - - def better_start_response(status, headers): - headers.append(('Access-Control-Allow-Origin', os.environ.get('TRUSTED_HOSTS', '*'))) - headers.append(('Access-Control-Allow-Headers', 'Content-Type, Authorization')) - headers.append(('Access-Control-Allow-Credentials', 'true')) - headers.append(('Access-Control-Allow-Methods', ', '.join(verbs))) - headers.append(('Access-Control-Expose-Headers', ', '.join(http_headers))) - start_response(status, headers) - - return urlshortener(environ, better_start_response) - - -app = cross_origin_helper_app From 78b79df53a3d7fc8c4a32eff1e7ce5cc0f443751 Mon Sep 17 00:00:00 2001 From: mohammad Date: Mon, 28 May 2018 14:40:32 +0430 Subject: [PATCH 10/16] Add sqlalchemy --- .coverage | 0 .idea/inspectionProfiles/Project_Default.xml | 0 .idea/misc.xml | 2 +- .idea/modules.xml | 0 .idea/urlshortener.iml | 2 +- .idea/vcs.xml | 0 .idea/workspace.xml | 688 +- .ropeproject/config.py | 0 .ropeproject/globalnames | Bin 2434 -> 2503 bytes .ropeproject/history | Bin .ropeproject/objectdb | Bin README.md | 0 __init__.py | 0 __pycache__/__init__.cpython-36.pyc | Bin data/api-documents/api/index.md | 27 +- data/api-documents/api/legend.md | 0 data/devdata.db | 0 data/logs/urlshortener-error.log | 7814 +++++++++++++++++ data/logs/urlshortener.log | 7814 +++++++++++++++++ gunicorn | 3 + requirements-dev.txt | 5 + setup.py | 4 +- url_shortener.py | 93 - urlshortener.egg-info/SOURCES.txt | 5 +- urlshortener.egg-info/requires.txt | 2 + urlshortener/__init__.py | 9 +- .../__pycache__/__init__.cpython-36.pyc | Bin 1220 -> 1393 bytes urlshortener/controllers/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin .../__pycache__/helpers.cpython-36.pyc | Bin 1090 -> 1090 bytes .../__pycache__/root.cpython-36.pyc | Bin 2346 -> 2573 bytes .../__pycache__/urls.cpython-36.pyc | Bin urlshortener/controllers/helpers.py | 1 + urlshortener/controllers/root.py | 61 +- urlshortener/controllers/urls.py | 43 - urlshortener/makomodules/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin .../__pycache__/index.mak.cpython-36.pyc | Bin .../successfully.mak.cpython-36.pyc | Bin 0 -> 1294 bytes urlshortener/makomodules/index.mak.py | 0 urlshortener/makomodules/successfully.mak.py | 0 urlshortener/models/__init__.py | 0 .../__pycache__/__init__.cpython-36.pyc | Bin 152 -> 152 bytes .../models/__pycache__/urls.cpython-36.pyc | Bin 0 -> 558 bytes urlshortener/models/urls.py | 22 +- urlshortener/templates/index.mak | 0 urlshortener/templates/successfully.mak | 0 urlshortener/tests/__init__.py | 0 .../tests/__pycache__/__init__.cpython-36.pyc | Bin .../tests/__pycache__/helpers.cpython-36.pyc | Bin 410 -> 1264 bytes .../__pycache__/test_root.cpython-36.pyc | Bin 730 -> 0 bytes urlshortener/tests/helpers.py | 27 +- urlshortener/tests/test_root.py | 66 +- 53 files changed, 16141 insertions(+), 547 deletions(-) mode change 100644 => 100755 .coverage mode change 100644 => 100755 .idea/inspectionProfiles/Project_Default.xml mode change 100644 => 100755 .idea/misc.xml mode change 100644 => 100755 .idea/modules.xml mode change 100644 => 100755 .idea/urlshortener.iml mode change 100644 => 100755 .idea/vcs.xml mode change 100644 => 100755 .idea/workspace.xml mode change 100644 => 100755 .ropeproject/config.py mode change 100644 => 100755 .ropeproject/globalnames mode change 100644 => 100755 .ropeproject/history mode change 100644 => 100755 .ropeproject/objectdb mode change 100644 => 100755 README.md mode change 100644 => 100755 __init__.py mode change 100644 => 100755 __pycache__/__init__.cpython-36.pyc mode change 100644 => 100755 data/api-documents/api/index.md mode change 100644 => 100755 data/api-documents/api/legend.md create mode 100644 data/devdata.db mode change 100644 => 100755 data/logs/urlshortener-error.log mode change 100644 => 100755 data/logs/urlshortener.log create mode 100755 gunicorn mode change 100644 => 100755 requirements-dev.txt mode change 100644 => 100755 setup.py delete mode 100644 url_shortener.py mode change 100644 => 100755 urlshortener/__init__.py mode change 100644 => 100755 urlshortener/controllers/__init__.py mode change 100644 => 100755 urlshortener/controllers/__pycache__/__init__.cpython-36.pyc mode change 100644 => 100755 urlshortener/controllers/__pycache__/urls.cpython-36.pyc mode change 100644 => 100755 urlshortener/controllers/helpers.py mode change 100644 => 100755 urlshortener/controllers/root.py delete mode 100644 urlshortener/controllers/urls.py mode change 100644 => 100755 urlshortener/makomodules/__init__.py mode change 100644 => 100755 urlshortener/makomodules/__pycache__/__init__.cpython-36.pyc mode change 100644 => 100755 urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc create mode 100644 urlshortener/makomodules/__pycache__/successfully.mak.cpython-36.pyc mode change 100644 => 100755 urlshortener/makomodules/index.mak.py mode change 100644 => 100755 urlshortener/makomodules/successfully.mak.py mode change 100644 => 100755 urlshortener/models/__init__.py create mode 100644 urlshortener/models/__pycache__/urls.cpython-36.pyc mode change 100644 => 100755 urlshortener/models/urls.py mode change 100644 => 100755 urlshortener/templates/index.mak mode change 100644 => 100755 urlshortener/templates/successfully.mak mode change 100644 => 100755 urlshortener/tests/__init__.py mode change 100644 => 100755 urlshortener/tests/__pycache__/__init__.cpython-36.pyc delete mode 100644 urlshortener/tests/__pycache__/test_root.cpython-36.pyc mode change 100644 => 100755 urlshortener/tests/helpers.py diff --git a/.coverage b/.coverage old mode 100644 new mode 100755 diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml old mode 100644 new mode 100755 diff --git a/.idea/misc.xml b/.idea/misc.xml old mode 100644 new mode 100755 index e29fe6a..223e715 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml old mode 100644 new mode 100755 diff --git a/.idea/urlshortener.iml b/.idea/urlshortener.iml old mode 100644 new mode 100755 index 2a4ca5c..6ee59f4 --- a/.idea/urlshortener.iml +++ b/.idea/urlshortener.iml @@ -2,7 +2,7 @@ - + diff --git a/.idea/vcs.xml b/.idea/vcs.xml old mode 100644 new mode 100755 diff --git a/.idea/workspace.xml b/.idea/workspace.xml old mode 100644 new mode 100755 index e514426..bbd0b13 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,32 +2,43 @@ - + + + + + - - - - + + + + + + + + + - - - - - - + + + + - + + + + + + - - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -419,63 +410,72 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + - + - - + + - - - - - + + + + + + - + - + - - + @@ -486,18 +486,6 @@ - - - file://$PROJECT_DIR$/urlshortener/controllers/root.py - 52 - - - file://$PROJECT_DIR$/urlshortener/controllers/root.py - 58 - - @@ -505,367 +493,387 @@ - + + + + + + + + + + + + + + ~isinstance(db_id, int) + Python + EXPRESSION + + + isinstance(db_id, int) + Python + EXPRESSION + + + response + Python + EXPRESSION + + + + + DBSession.commit() + Python + EXPRESSION + + + response + Python + EXPRESSION + + + response.status_code + Python + EXPRESSION + + - + - - - - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - - + + - + + + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - - + + - + - - + + - + - - + + - + - - - - - + + - + - - + + - + - - + + - + - - - - - + + - + - - + + - + - - + + - + - - - - - + + - + - - + + - - + - - + + - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - - + + - + - + - + - - + + - + + + + - - + + - + - - + + - + - - + + - + - - - - - + + - + - - - - - + + - + - - + + - - - - - + + + + + + + + + diff --git a/.ropeproject/config.py b/.ropeproject/config.py old mode 100644 new mode 100755 diff --git a/.ropeproject/globalnames b/.ropeproject/globalnames old mode 100644 new mode 100755 index 0d2f951f23348de9682e470da09d8f6d56eb0704..f825ee9475d493608dee206bcf239373c33a97e3 GIT binary patch literal 2503 zcmaJ@XM5XJ6fWI+LKiKRvRsCtWpC2NDWPo=oTRx0gpj4{~U#yH(u{%d&O3)s) zE)%acu{VGDP3)6sGj)zAb#Sj*-!qB()JA@$%YImouwUrn=D@Jmg90pLDsTFWN^g7(UKSr9ghD2i8k;8F;~sl zo}but569I0K`Pbjpn9sGSq?((`<9E(RwguZ|Nm@PyjHl684M zDLGQu_7iUEQ^KLkP|;2ZT2VP>i?4PR`@x-tOxK80$+0gwq2k#&};Z ztJj3oIF4cpQ4t$;Przgj*a4U6Odd2p&-o3)JEV?tDTkNVX+*rZt$<9qe;KAMyjvPs z`LlPr3+GmykMks<8A@9*rY+2rB%-!m_c^Iqng7^v8_p8hZAwgb2Hul1;1OrzaW8zH zv?{5+qp@;dQ-e7R^RfWLdC2i8XEZEWxFEM+AqlYPxxKZ5AvX5$) z@UgUHg#xF5+4V%NfF^ZPxUz1UFgyu5d!7PG5&fkwN+{chl#*{CNDs3^vZ9Hmv@mnk z3bU3Moi6qhY@ zOY$Y~YFL&H){fEH9ls*(#<|TduJ*c_y|0P*#A$pY9Sf;rv+k!NF&6t5PU5KBT2UnQyQA(p7jlyRu<&Ow7k>>*!rudv@Q>upM{B$oEBs5X@_*?s3L^jj literal 2434 zcmaJ@>3`cq5G`%f`!4jNg;Fk;!_acyq={3~(j?ePy9I=hrBS3>*6L|xrw$a#ec#u= z%k0RpW2cZ0`DJ$Jc=P7XDz`V^!lsJa#6P&p!Dh9S|BBOqZdTh~3tJp)t*G66mJ=W5 zZc_(6OsIW)(pa2daO<_X=~{hu?jp8H=n|VVvvaj+Y$tV?y*hbfBApkMQeJKAfD(fp z4tA?O5>g9ERiB5o7*IoMy3BWteelyE?8XOAnh zbJuH=bsSV%tbg3bA+@z1iNk`|Mlhzr!`-D*vyFSo;7KLHM`{p%rcAvX;0vV?>t zAffIR$sPvM>Z@`mlWf!$@tP>vbowLU;Mb)9w?Kw6ydhSJtcf?(UM|O$YiI9fUJ+qZ z*b*(^f>bKUfho0%opWmIZppy3VDO^o&-4@}jbq2XY$B1^rLCs-08U+@g!YRN{r%)H|ol{`kBB2J(j zTrVZ>>#T=&Wv3e%`LUPGFrZqV>m2V%Z+@g#QoJv^&uKX}1;3A-)b`_sI&XUg9GPK* zl|BsqKt>hBrsZ}FHx5_cNjqpS_anP9WwgPEq92RIKAiB>amz(IC^qVkraH*?HW4Ff z$ElaNCSE1@f}$=E^Iq9PAYJF}A}2yQD_iG0LYZd2jeY?vmrM^UkG2^JA7$cL9c2*z z1@Xq9BPraHp;*x(k>#)$?BI3t2HG-u+s;TegLII@6il)nm?D`>q}DfVet z;}^N$U5R2pf)NqM%c;)EE*Vpo8WfVG#_Lli>5y=n>LS#gG{|^v)u?DE=sH*#JnyH* zrRwXn$oZ*aX;*Wt3*2^k=Bfah%;Kx(@DZug{}&%ol5rkLm-FKnxe=Csy(2xpiT{AD-$|Vv@0mq2cojE%*#B_wXC<1AE=By-og5D> Y>9W6F8T?-k{uUuxL<7eD@jBIi0TqAq#sB~S diff --git a/.ropeproject/history b/.ropeproject/history old mode 100644 new mode 100755 diff --git a/.ropeproject/objectdb b/.ropeproject/objectdb old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/__init__.py b/__init__.py old mode 100644 new mode 100755 diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc old mode 100644 new mode 100755 diff --git a/data/api-documents/api/index.md b/data/api-documents/api/index.md old mode 100644 new mode 100755 index 60472fc..21e1127 --- a/data/api-documents/api/index.md +++ b/data/api-documents/api/index.md @@ -17,26 +17,29 @@ Role: user ### Status: -`500 Internal server error` +`200 OK` ### Response Headers: ``` -Content-Type: text/plain; charset=utf-8 -Content-Length: 632 +Content-Type: text/html; charset=utf-8 +Content-Length: 351 ``` ### Response Body: ```json -Internal Server Error -Traceback (most recent call last): - File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ - response_body = self.__root__(*remaining_paths) - File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/restfulpy/controllers.py", line 18, in __call__ - return super().__call__(*remaining_paths) - File "/home/mohammad/.virtualenvs/practice/lib/python3.6/site-packages/nanohttp/controllers.py", line 81, in __call__ - handler, remaining_paths = self._find_handler(list(remaining_paths)) -TypeError: 'method' object is not iterable + +Url shortener + +
+
+ Iuput url: + + +
+
+ + ``` diff --git a/data/api-documents/api/legend.md b/data/api-documents/api/legend.md old mode 100644 new mode 100755 diff --git a/data/devdata.db b/data/devdata.db new file mode 100644 index 0000000..e69de29 diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log old mode 100644 new mode 100755 index eda5247..8b78deb --- a/data/logs/urlshortener-error.log +++ b/data/logs/urlshortener-error.log @@ -28,3 +28,7817 @@ Traceback (most recent call last): File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve key = binascii.unhexlify(hexstring) binascii.Error: Non-hexadecimal digit found +2018-05-27 11:27:51 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 11:27:55 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 63, in post + return dict(hash_id=codec.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + from pudb import set_trace; set_trace() +ModuleNotFoundError: No module named 'pudb' +2018-05-27 11:27:55 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 11:29:03 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 11:29:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 12:21:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 78, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got 0) +2018-05-27 12:21:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 39, in store + new_url = Url(url=url) +NameError: name 'Url' is not defined +2018-05-27 12:21:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 78, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got 0) +2018-05-27 12:34:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 82, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 48, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:34:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 78, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in store + new_url = Url(url=url) +NameError: name 'Url' is not defined +2018-05-27 12:34:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 82, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 48, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:34:46 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 82, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 48, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:38:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 79, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 42, in store + session.add(new_url) +NameError: name 'session' is not defined +2018-05-27 12:38:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 83, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:38:55 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 83, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:45:47 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 388, in _connection_for_bind + self._assert_active() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 276, in _assert_active + % self._rollback_exception +sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.OperationalError) no such table: urls [SQL: 'INSERT INTO urls (url) VALUES (?)'] [parameters: ('www.varzesh3.com',)] (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:15:52 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 156, in save_obj + base_mapper, states, uowtransaction + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 286, in _organize_states_for_save + states): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1252, in _connections_for_states + connection = uowtransaction.transaction.connection(base_mapper) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294, in connection + return self._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 398, in _connection_for_bind + conn = self._parent._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:15:52 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:36:03 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:36:06 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 156, in save_obj + base_mapper, states, uowtransaction + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 286, in _organize_states_for_save + states): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1252, in _connections_for_states + connection = uowtransaction.transaction.connection(base_mapper) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294, in connection + return self._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 398, in _connection_for_bind + conn = self._parent._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:36:06 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:43:43 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:43:44 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:09 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:11 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:11 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:12 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:13 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:16 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:16 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:57:06 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:57:30 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:57:30 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:07:00 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:07:42 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 45, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:07:42 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:22:12 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:31:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 92, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + hash_id = hashids.encode(new_url.id) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/hashids.py", line 226, in encode + if not (values and all(_is_uint(x) for x in values)): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/hashids.py", line 226, in + if not (values and all(_is_uint(x) for x in values)): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/hashids.py", line 27, in _is_uint + return number == int(number) and number >= 0 +TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' +2018-05-27 14:31:41 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:33:34 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:33:40 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:33:40 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:45:53 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:46:03 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:46:03 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:29:39 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:29:46 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:29:46 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:36:51 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:36:53 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:36:53 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:38:27 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:38:27 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:38:27 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:43:05 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:43:07 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:43:08 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:57:36 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:57:38 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:57:38 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:04:11 - main - ERROR - unique_violation +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.IntegrityError: duplicate key value violates unique constraint "urls_pkey" +DETAIL: Key (id)=(1) already exists. + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) duplicate key value violates unique constraint "urls_pkey" +DETAIL: Key (id)=(1) already exists. + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/gkpj) +2018-05-27 17:04:11 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:04:15 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:04:17 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:14:46 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:14:49 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:14:49 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:16:49 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:16:51 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:16:51 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:21:01 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('http://www.varzesh3.com') RE... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('http://www.varzesh3.com') RE... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'http://www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:21:01 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:21:01 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:23:16 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('user_id_seq'), '... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('user_id_seq'), '... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('user_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:23:16 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:23:16 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:27:35 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:27:37 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:27:39 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:40 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:41 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:43 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:45 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:45 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:30:17 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:30:18 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:30:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 92, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 45, in store + new_url = Url(url) +TypeError: __init__() takes 1 positional argument but 2 were given +2018-05-27 17:30:20 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:31:31 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:31:31 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:31:31 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:46:05 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'a.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:46:20 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'a.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:45:24 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:46:25 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:46:25 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:46:28 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:53:14 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:54:20 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:32:10 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 47, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:57:54 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:58:22 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:59:52 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:01:58 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:01:59 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:02:40 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:03:15 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:26 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:26 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:27 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:33 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:35 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:37 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:37 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:06:01 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:06:21 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:06:23 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:07:43 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'wewewewe'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:09:24 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'wewewewe'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:30:59 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:31:08 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:34:43 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:34:44 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:36:49 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 92, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 56, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:36:57 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 92, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 56, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:44:47 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:44:48 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:45:05 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:45:57 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:46:19 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:47:10 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:58:11 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:58:18 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:59:43 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:59:49 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:59:56 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 12:34:09 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + return url.url +AttributeError: 'NoneType' object has no attribute 'url' +2018-05-28 12:34:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + return url.url +AttributeError: 'NoneType' object has no attribute 'url' +2018-05-28 12:36:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:36:34 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:36:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:36:45 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:35 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:54:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:34 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:37 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:50 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:53 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:10 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:09 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:12 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:57:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:01:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:07 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:07 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:32 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:15:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:16:37 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:17:34 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log old mode 100644 new mode 100755 index eda5247..8b78deb --- a/data/logs/urlshortener.log +++ b/data/logs/urlshortener.log @@ -28,3 +28,7817 @@ Traceback (most recent call last): File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve key = binascii.unhexlify(hexstring) binascii.Error: Non-hexadecimal digit found +2018-05-27 11:27:51 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 11:27:55 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 63, in post + return dict(hash_id=codec.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + from pudb import set_trace; set_trace() +ModuleNotFoundError: No module named 'pudb' +2018-05-27 11:27:55 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 11:29:03 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 11:29:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(codec.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 29, in resolve + key = binascii.unhexlify(hexstring) +binascii.Error: Odd-length string +2018-05-27 12:21:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 78, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got 0) +2018-05-27 12:21:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 39, in store + new_url = Url(url=url) +NameError: name 'Url' is not defined +2018-05-27 12:21:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 78, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got 0) +2018-05-27 12:34:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 82, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 48, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:34:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 78, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in store + new_url = Url(url=url) +NameError: name 'Url' is not defined +2018-05-27 12:34:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 82, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 48, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:34:46 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 82, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 48, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:38:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 79, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 42, in store + session.add(new_url) +NameError: name 'session' is not defined +2018-05-27 12:38:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 83, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:38:55 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 83, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in resolve + url = session.query(Url).filter_by(id=db_id).first() +NameError: name 'session' is not defined +2018-05-27 12:45:47 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 388, in _connection_for_bind + self._assert_active() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 276, in _assert_active + % self._rollback_exception +sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.OperationalError) no such table: urls [SQL: 'INSERT INTO urls (url) VALUES (?)'] [parameters: ('www.varzesh3.com',)] (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:15:52 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 156, in save_obj + base_mapper, states, uowtransaction + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 286, in _organize_states_for_save + states): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1252, in _connections_for_states + connection = uowtransaction.transaction.connection(base_mapper) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294, in connection + return self._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 398, in _connection_for_bind + conn = self._parent._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:15:52 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:36:03 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:36:06 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 156, in save_obj + base_mapper, states, uowtransaction + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 286, in _organize_states_for_save + states): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1252, in _connections_for_states + connection = uowtransaction.transaction.connection(base_mapper) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 294, in connection + return self._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 398, in _connection_for_bind + conn = self._parent._connection_for_bind(bind, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:36:06 - main - ERROR - None +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +psycopg2.OperationalError: FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances + close_with_result=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args + **kw + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session + conn = self.session.connection(**kw) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection + execution_options=execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind + engine, execution_options) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind + conn = bind.contextual_connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect + self._wrap_pool_connect(self.pool.connect, None), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2162, in _wrap_pool_connect + e, dialect, self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception_noconnection + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect + return fn() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect + return _ConnectionFairy._checkout(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 788, in _checkout + fairy = _ConnectionRecord.checkout(pool) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 532, in checkout + rec = pool._do_get() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1193, in _do_get + self._dec_overflow() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1190, in _do_get + return self._create_connection() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 350, in _create_connection + return _ConnectionRecord(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 477, in __init__ + self.__connect(first_connect_check=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/pool.py", line 671, in __connect + connection = pool._invoke_creator(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 106, in connect + return dialect.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 410, in connect + return self.dbapi.connect(*cargs, **cparams) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect + conn = _connect(dsn, connection_factory=connection_factory, **kwasync) +sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" +FATAL: password authentication failed for user "postgres" + (Background on this error at: http://sqlalche.me/e/e3q8) +2018-05-27 13:43:43 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:43:44 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:09 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:11 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:11 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:12 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:13 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:16 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:44:16 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:57:06 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:57:30 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 44, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 13:57:30 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:07:00 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:07:42 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 45, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:07:42 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:22:12 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:31:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 92, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + hash_id = hashids.encode(new_url.id) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/hashids.py", line 226, in encode + if not (values and all(_is_uint(x) for x in values)): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/hashids.py", line 226, in + if not (values and all(_is_uint(x) for x in values)): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/hashids.py", line 27, in _is_uint + return number == int(number) and number >= 0 +TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' +2018-05-27 14:31:41 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:33:34 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:33:40 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), 'w... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('url_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:33:40 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:45:53 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:46:03 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 81, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 14:46:03 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 51, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:29:39 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:29:46 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:29:46 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:36:51 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:36:53 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:36:53 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:38:27 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:38:27 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:38:27 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:43:05 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:43:07 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:43:08 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:57:36 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:57:38 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 16:57:38 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:04:11 - main - ERROR - unique_violation +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.IntegrityError: duplicate key value violates unique constraint "urls_pkey" +DETAIL: Key (id)=(1) already exists. + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 80, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) duplicate key value violates unique constraint "urls_pkey" +DETAIL: Key (id)=(1) already exists. + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/gkpj) +2018-05-27 17:04:11 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:04:15 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:04:17 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 50, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:14:46 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:14:49 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:14:49 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:16:49 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:16:51 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:16:51 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:21:01 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('http://www.varzesh3.com') RE... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('http://www.varzesh3.com') RE... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'http://www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:21:01 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:21:01 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:23:16 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('user_id_seq'), '... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (id, url) VALUES (nextval('user_id_seq'), '... + ^ + [SQL: "INSERT INTO urls (id, url) VALUES (nextval('user_id_seq'), %(url)s) RETURNING urls.id"] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:23:16 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:23:16 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:27:35 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:27:37 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:27:39 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:40 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:41 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:43 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:45 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 93, in wrapper + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:29:45 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:30:17 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:30:18 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:30:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/restfulpy/orm/__init__.py", line 92, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 45, in store + new_url = Url(url) +TypeError: __init__() takes 1 positional argument but 2 were given +2018-05-27 17:30:20 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:31:31 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:31:31 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:31:31 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:46:05 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'a.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-27 17:46:20 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('a.com') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'a.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:45:24 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:46:25 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:46:25 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:46:28 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:53:14 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 88, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 52, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 09:54:20 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 84, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 46, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:32:10 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 85, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 47, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:57:54 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:58:22 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 10:59:52 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:01:58 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:01:59 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:02:40 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:03:15 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:26 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:26 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:27 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:33 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:35 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:37 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:04:37 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:06:01 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:06:21 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('www.varzesh3.com') RETURNING... + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'www.varzesh3.com'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:06:23 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:07:43 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'wewewewe'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:09:24 - main - ERROR - undefined_table +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 89, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 49, in store + DBSession.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", line 153, in do + return getattr(self.registry(), name)(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 943, in commit + self.transaction.commit() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 467, in commit + self._prepare_impl() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 447, in _prepare_impl + self.session.flush() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2254, in flush + self._flush(objects) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2380, in _flush + transaction.rollback(_capture_exception=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__ + compat.reraise(exc_type, exc_value, exc_tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise + raise value + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2344, in _flush + flush_context.execute() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 391, in execute + rec.execute(self) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 556, in execute + uow + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj + mapper, table, insert) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 866, in _emit_insert_statements + execute(statement, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "urls" does not exist +LINE 1: INSERT INTO urls (url) VALUES ('wewewewe') RETURNING urls.id + ^ + [SQL: 'INSERT INTO urls (url) VALUES (%(url)s) RETURNING urls.id'] [parameters: {'url': 'wewewewe'}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:30:59 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:31:08 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:34:43 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:34:44 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 93, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 57, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:36:49 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 92, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 56, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:36:57 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 92, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 56, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:44:47 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:44:48 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:45:05 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:45:57 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:46:19 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:47:10 - main - ERROR - syntax_error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +psycopg2.ProgrammingError: syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 64, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 28, in resolve + url = DBSession.query(Url).filter_by(id=db_id).first() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2825, in first + ret = list(self[0:1]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2617, in __getitem__ + return list(res) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__ + return self._execute_and_instances(context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances + result = conn.execute(querycontext.statement, self._params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 948, in execute + return meth(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection + return connection._execute_clauseelement(self, multiparams, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement + compiled_sql, distilled_params + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception + exc_info + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause + reraise(type(exception), exception, tb=exc_tb, cause=cause) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise + raise value.with_traceback(tb) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context + context) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute + cursor.execute(statement, parameters) +sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near ")" +LINE 3: WHERE urls.id = () + ^ + [SQL: 'SELECT urls.id AS urls_id, urls.url AS urls_url \nFROM urls \nWHERE urls.id = %(id_1)s \n LIMIT %(param_1)s'] [parameters: {'id_1': (), 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405) +2018-05-28 11:58:11 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:58:18 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:59:43 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:59:49 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 11:59:56 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 60, in post + return dict(hash_id=new_db.store(context.form.get('url'))) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 17, in store + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-05-28 12:34:09 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + return url.url +AttributeError: 'NoneType' object has no attribute 'url' +2018-05-28 12:34:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + return url.url +AttributeError: 'NoneType' object has no attribute 'url' +2018-05-28 12:36:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:36:34 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:36:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:36:45 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:35 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:52:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:54:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 65, in resolve + raise HttpFound(new_db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 30, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:34 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:37 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:50 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 12:57:53 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 67, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 32, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:10 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:20:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 71, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:09 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:12 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:55:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 13:57:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:01:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:07 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:07 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:04:32 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 73, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 33, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:15:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:16:37 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) +2018-05-28 14:17:34 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 74, in resolve + raise HttpFound(db.resolve(hexstring)) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve + db_id, = hashids.decode(hash_id) +ValueError: not enough values to unpack (expected 1, got 0) diff --git a/gunicorn b/gunicorn new file mode 100755 index 0000000..c51599d --- /dev/null +++ b/gunicorn @@ -0,0 +1,3 @@ +#! /bin/bash + +gunicorn --env "TRUSTED_HOSTS=http://localhost:8080" --workers 2 --reload --bind :8081 wsgi:app diff --git a/requirements-dev.txt b/requirements-dev.txt old mode 100644 new mode 100755 index a6c88f5..879e94c --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +1,7 @@ nose coverage +restfulpy>=0.41.3 +hashids +gunicorn +webtest +bddrest diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index df15af1..11e15cc --- a/setup.py +++ b/setup.py @@ -11,13 +11,15 @@ dependencies = [ 'restfulpy >= 0.41.3', 'hashids', + 'nanohttp', # Deployment 'gunicorn', # testing 'webtest', - 'nose' + 'nose', + 'bddrest' ] diff --git a/url_shortener.py b/url_shortener.py deleted file mode 100644 index bdeed01..0000000 --- a/url_shortener.py +++ /dev/null @@ -1,93 +0,0 @@ -import hashlib -import binascii -import functools -from os.path import join, abspath, dirname -from mako.lookup import TemplateLookup -from nanohttp import Controller, RestController, context, html, text, HttpFound, Static, \ - settings, action, HttpNotFound -from hashids import Hashids - - -list_url = [] -hashids = Hashids(salt='this is my salt') - - -here = abspath(dirname(__file__)) -lookup = TemplateLookup(directories=[join(here, 'templates')], module_directory=join(here, 'makomodules')) - - -def render_template(func, template_name): - - @functools.wraps(func) - def wrapper(*args, **kwargs): - - result = func(*args, **kwargs) - if hasattr(result, 'to_dict'): - result = result.to_dict() - elif not isinstance(result, dict): - raise ValueError('The result must be an instance of dict, not: %s' % type(result)) - - template_ = lookup.get_template(template_name) - return template_.render(**result) - - return wrapper - - -template = functools.partial(action, content_type='text/html', inner_decorator=render_template) - - -db = {} - - -class Codec: - - def store(self, url): - if not url.startswith('http'): - url = f'http://{url}' - - key = hashlib.sha1(url.encode()).digest() - if key not in db: - db[key] = url - - return binascii.hexlify(key).decode() - - def resolve(self, hexstring): - hexstring = hexstring.encode() - key = binascii.unhexlify(hexstring) - if key not in db: - raise HttpNotFound() - - return db[key] - - -codec = Codec() - - -class Root(RestController): - - def _find_handler(self, remaining_paths): - if len(remaining_paths) > 0: - return self.resolve, remaining_paths - return super()._find_handler(remaining_paths) - - @template('index.mak') - def get(self): - return dict() - - @template('successfully.mak') - def post(self): - return dict(hash_id=codec.store(context.form.get('url'))) - - @text - def resolve(self, hexstring): - raise HttpFound(codec.resolve(hexstring)) - - -if __name__ == '__main__': - from nanohttp import quickstart, configure - configure() - try: - quickstart(Root()) - except KeyboardInterrupt: - print('CTLR+C just pressed') - diff --git a/urlshortener.egg-info/SOURCES.txt b/urlshortener.egg-info/SOURCES.txt index 008ce05..b11e52f 100644 --- a/urlshortener.egg-info/SOURCES.txt +++ b/urlshortener.egg-info/SOURCES.txt @@ -1,5 +1,4 @@ README.md -setup.py urlshortener/__init__.py urlshortener.egg-info/PKG-INFO urlshortener.egg-info/SOURCES.txt @@ -10,7 +9,6 @@ urlshortener.egg-info/top_level.txt urlshortener/controllers/__init__.py urlshortener/controllers/helpers.py urlshortener/controllers/root.py -urlshortener/controllers/urls.py urlshortener/makomodules/__init__.py urlshortener/makomodules/index.mak.py urlshortener/makomodules/successfully.mak.py @@ -18,4 +16,5 @@ urlshortener/models/__init__.py urlshortener/models/urls.py urlshortener/tests/__init__.py urlshortener/tests/helpers.py -urlshortener/tests/test_root.py \ No newline at end of file +urlshortener/tests/test_root.py +urlshortener/tests/test_url.py \ No newline at end of file diff --git a/urlshortener.egg-info/requires.txt b/urlshortener.egg-info/requires.txt index 06ef995..eeb6beb 100644 --- a/urlshortener.egg-info/requires.txt +++ b/urlshortener.egg-info/requires.txt @@ -1,5 +1,7 @@ restfulpy>=0.41.3 hashids +nanohttp gunicorn webtest nose +bddrest diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py old mode 100644 new mode 100755 index 9f4d6c4..a9cb72a --- a/urlshortener/__init__.py +++ b/urlshortener/__init__.py @@ -1,8 +1,10 @@ from os.path import dirname, join from restfulpy import Application as BaseApplication -from .controllers.root import Root +from restfulpy.orm import DBSession +from urlshortener.models.urls import Url +from .controllers.root import Root __version__ = '0.1.0-planning.0' @@ -29,8 +31,9 @@ def insert_basedata(self): # pragma: no cover # noinspection PyArgumentList def insert_mockup(self): - raise NotImplementedError() + url = Url(url='www.varzesh3.com') + DBSession.add(url) + DBSession.commit() urlshortener = Application() - diff --git a/urlshortener/__pycache__/__init__.cpython-36.pyc b/urlshortener/__pycache__/__init__.cpython-36.pyc index 22a73cd66ba443931f6f61457169e3cb3fce4980..001e3584f49f7ae661b6da72a752453b1c961118 100644 GIT binary patch delta 613 zcmYk3&5G1O6ou)KO-ksEb)-6NJH?45EU&0U6wsV2G)bX|3uSZl!G;MjC0i zE;NtfO7IbU347}k_y*nz;!NOvoT_`doKyLk{>jz{MUnmbk-zxH3HePfeFF7EEdLUr zh@ysADye0X(QsylTOp%Sb2G8Aj7Kd@VpEx-j?~0tHkUc-SWcf3m8kR+QK^nLTna5V zM8<{6j!Bh&S?uptbeleTbgaFfy9FNjb1>frLuvAroks=Q*d0Ey`F@ECuKve0RNL8n z;WhNltJZ7P_U)}<#_z2ewlEiYjOFhjdd#8NXZnHm^bI?w8%hZ(z9GRo8sSH0>;*A({!fwzSG7u&BeNk!j&)-(n9z*IhIclNi5hjO~iP6RP79h z;{Lh-?fchDbNaq^U`Nk#4@3A92fbcssI61l_&VH;xn$Y7MGwvx4Za5FdI;NL7LW#9 eL>txk?#Tn(vo!jU;)LHplx#|;X#f?xy!jUnUw>l& delta 426 zcmZvYze~h06vvY^ZQ6SE>Uon6Cx}BqL{KM1oOBW4aEn8!O@_ndDoJlUa5(<~>EK`C zAh^5uS9EZ3a`Zp&XD(MXINQ9Rti$0+j%1Fz^$czgu z+lR;g^Q*!*Xtv4JUxH|_c_O2&Wl$#l#R{mlI~rSQ>ioK}QWSNu-W+|RRn;bNg^2@mSS&VI^X;wQqXIQIY@v diff --git a/urlshortener/controllers/__init__.py b/urlshortener/controllers/__init__.py old mode 100644 new mode 100755 diff --git a/urlshortener/controllers/__pycache__/__init__.cpython-36.pyc b/urlshortener/controllers/__pycache__/__init__.cpython-36.pyc old mode 100644 new mode 100755 diff --git a/urlshortener/controllers/__pycache__/helpers.cpython-36.pyc b/urlshortener/controllers/__pycache__/helpers.cpython-36.pyc index 17977b62d6b4ceca6018407cbacf38d0aefd1997..906833b76c841235d61f9f16027a7f4a2eef4663 100644 GIT binary patch delta 18 ZcmX@aafpM{n3tF9QY2S&^hQog7636Q1lIrn delta 18 ZcmX@aafpM{n3tDpmojH`)J9HA762}k1cv|s diff --git a/urlshortener/controllers/__pycache__/root.cpython-36.pyc b/urlshortener/controllers/__pycache__/root.cpython-36.pyc index 2e969b8b53ab45d6bb32f6a0b52faac310b6c386..6cbacee7d4c6467f7866733c4164e5a961828cbd 100644 GIT binary patch literal 2573 zcmZuzOK%%D5GJ_~tyU{VwiDM*Qq*nwfclUTw9TO?f;0}&w^1a0vWLZ5q@tDgp^#K! z3-YB3kW+q0f&Pa6kiGVlThT)gJ#~ibhumfba>3&lQ67CtL`y_Zh=>-9ugSFq;TJ*H79Egv zWFXnX<(EKmL3BaVg}KAmy57nO(bYOEutfA&7Qm`M1@a~h|#piH$((@~KtjnV6+>_eul!Z}cmPu7bpBXdR zEzR9>T8OGK0F68_RTIUv%tb+uRvTZy`fn057@aNuIz32>9;^I8ndd1iyL0=#)H*E- zSkU+^(W6x8T^Kvxsq8sLM`#ronNPCB$XR=;vMoI-m63&1pmKGRnE^U{@-P_Of~K!R zCkdy5a3-i=PY8E}BV2g9_M(2p?%W=rJw6^Z2iguaeHS`I#?-I{9XoR>=rcNY7vzY| znYv+EEje<)#+y3`AdGy3+cd_(+!;3)^vIpN04KAz0l#~p3SryIdpMQqP(?Uy4%5s? z74IEZ-Y`|#R8As?SjY2+-VOp<> zQ}HWNSHR|mIETa~5hPryBGN+r9n zrS3pS=sI<22)}?ubQavX-M0p(aJpb~3g??JK{)3WU}1)h9peJ9-W&o0zyfeb4uIA; zhD&XLeJ@b!@Tzn#S0BZpsd}GeqJjH|( z6roM21+Qv6lFF77tD@xySFJccR>g6T)^MG9Zk>J|c6$q&wl(3*+V4^0+n{Vz)?6KKs$Y$5m3Ekry@3IU|pV;0Zqf|7ZX7HRPyo+M_Z zfuNdkJjfEQ=NIWX}*PXSc3Hs<5_Uc+eg00+PsdCjvn-{z3PD*V)0{w}fP3tF0 z&&3ksXx&0esNKS-E$A;m_%$AmLU`3Sc37y#QR2;!JkUl#l$O%gW-MCWgm!XvWY0b( zhF$+W6p&Tg*QwwUBRpG;FI@s4HQSbo;vL2=nrb^D%cE0`U-a9*6|609(g1Czu4(g#2VpsU(vI*cEFpK3xzidOiq zNxgw~8_Sf_2j-NS?xU>!+%-lrgX+;WP{@&WbPz~;%^KkkaQY$cxALVt+$$3$K8Jr9 zN=+xG@+J^DvlO{g!l{CfYp%YD1)`C9wrE7VG-3g~BPVn^YreA@b}t1W^(mtr`27p* CzcZcy literal 2346 zcmZuyOOM+&5GEx`mSub6Y??*V7t&W+6@}eJdTEgs2^L6$0yT;T%|Sf~T9JU37ZmNie~H(g@)z1mXQ5E?D#@9K0M54hf@R3X+->|u=E3@;nQ2L;*w5*FlNYj6)^ zcFSYPh#Yg{2hjg1)!A&L{$qZe=Gy79(l`Ey_iaY60`XFS6LEW$4rS=fLD1 z4D~J$K@h>%;gmb4BzC#W8TU@$4D}cYsuiT9&mBtEPD6mw zxx?Lts@t5c=^x}z=Q-8x9OiScAq}1T4SDXaUEMkA$cJmHJ8SnY(ZRgC2CaG65HRdb zoRnT+d8rma18i9~!1+>Avwr zmBA&9&+{h`3ghrY6CCDMs|2`Pc z>Qao$dX|=D%E!-Yd88KL-59p3SuM4wguJ}K5VyfsV+ny9El!N5bS=dYVMIb`pZGMS zp|eW^8aS(-#eHOVU7(N1V5QVj)UBLC0W(|1(xUZd?h$o#y zp1cMcau0~#& zXEkV@KHC8%O^_s2T8bnwVUm$(blgB5Fa~^4vOo8&3NihO%|zt_Iff=u8b`@gYd%M@T+Kg8L+D zZJo5i;1dvh3d0^3xDwZ|Apkt0CO|d_K-Xd~$&^|og4h#27AE$+Qz*o^18X1Fw$s5n z5Z$)J!908kwI25Xik@NEZ7z}!UB!W@E4+q=G=x*=5tDms0B}vG&Lg6s8O&XjSUB5q zX2vZj$nICRIzX_N4Z6lI!Mkc7!1)iVVRt(zoSkt&rWn{1R{ zfc>w~5g!N?5oF?O7u_9QI(F3s8{&9Wrbm~;k123)uCAe!z*i_0Y8cNm{pR2r_leM7 zqY|P(oK;}$0dqA}%PbR0O_xP+@|rPBU~3H1R1>UO?2B`c14sa%^E*Q2PUPDlk03nQ z#*&;zz8nL`c-Wq@wp{Q*G;CVSQhsT7zbOq3ThvN_3-WVUyVh0YUJ56M(t5TFlh!i~ zTti>L)6hcVN<>)hBf(ld3zWQtj7{Cz>__>180S{|*6LYTi24$fW-IqGn`19s*p~XTp+s=o>!RuSI(V)jq>Gc$RwtJM?&>1J(!_V9fP7Zgd&96}$UaJK ugT*e^f`_-YzHFg(QRybQ+cwGXC~Q;MtMN6sMTbrR$=!FDyR+xJyW#(QgZldb diff --git a/urlshortener/controllers/__pycache__/urls.cpython-36.pyc b/urlshortener/controllers/__pycache__/urls.cpython-36.pyc old mode 100644 new mode 100755 diff --git a/urlshortener/controllers/helpers.py b/urlshortener/controllers/helpers.py old mode 100644 new mode 100755 index 12ddf33..ebfdeeb --- a/urlshortener/controllers/helpers.py +++ b/urlshortener/controllers/helpers.py @@ -25,3 +25,4 @@ def wrapper(*args, **kwargs): template = functools.partial(action, content_type='text/html', inner_decorator=render_template) + diff --git a/urlshortener/controllers/root.py b/urlshortener/controllers/root.py old mode 100644 new mode 100755 index a737c14..0b88e10 --- a/urlshortener/controllers/root.py +++ b/urlshortener/controllers/root.py @@ -1,43 +1,51 @@ -import binascii -import hashlib - -from nanohttp import json, RestController, HttpNotFound, context, HttpFound, text -from restfulpy.controllers import JsonPatchControllerMixin, RootController +from nanohttp import json, RestController, HttpNotFound, context, HttpFound, text, HttpBadRequest +from restfulpy.controllers import JsonPatchControllerMixin +from restfulpy.orm import DBSession +from hashids import Hashids import urlshortener +from urlshortener.models.urls import Url from .helpers import template -from .urls import UrlController -db = {} + +hashids = Hashids(salt="url shortener") -class Codec: +class DB: def store(self, url): - from pudb import set_trace; set_trace() + if not url.startswith('http'): url = f'http://{url}' - key = hashlib.sha1(url.encode()).digest() - if key not in db: - db[key] = url + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() - return binascii.hexlify(key).decode() + if url_exist is None: + url_exist = Url(url=url) + DBSession.add(url_exist) + DBSession.commit() - def resolve(self, hexstring): - hexstring = hexstring.encode() - key = binascii.unhexlify(hexstring) - if key not in db: + hash_id = hashids.encode(url_exist.id) + return hash_id + + def resolve(self, hash_id): + + try: + db_id, = hashids.decode(hash_id) + except ValueError: + raise HttpBadRequest() + + url = DBSession.query(Url).filter_by(id=db_id).one_or_none() + if url is None: raise HttpNotFound() - return db[key] + return url.url -codec = Codec() +db = DB() class ApiV1(JsonPatchControllerMixin, RestController): - # urls = UrlController() @json def version(self): @@ -47,7 +55,6 @@ def version(self): class Root(RestController): - apiv1 = ApiV1() def _find_handler(self, remaining_paths): if len(remaining_paths) > 0: @@ -60,9 +67,17 @@ def get(self): @template('successfully.mak') def post(self): - return dict(hash_id=codec.store(context.form.get('url'))) + return dict(hash_id=db.store(context.form.get('url'))) @text def resolve(self, hexstring): - raise HttpFound(codec.resolve(hexstring)) + raise HttpFound(db.resolve(hexstring)) + +if __name__ == '__main__': + from nanohttp import quickstart, configure + configure() + try: + quickstart(Root()) + except KeyboardInterrupt: + print('CTLR+C just pressed') diff --git a/urlshortener/controllers/urls.py b/urlshortener/controllers/urls.py deleted file mode 100644 index 845a15c..0000000 --- a/urlshortener/controllers/urls.py +++ /dev/null @@ -1,43 +0,0 @@ - - -from nanohttp import RestController, HttpNotFound, context, HttpFound, text - -from .helpers import template - -db = {} - - -class Codec: - - def store(self, url): - if not url.startswith('http'): - url = f'http://{url}' - - key = hashlib.sha1(url.encode()).digest() - if key not in db: - db[key] = url - - return binascii.hexlify(key).decode() - - def resolve(self, hexstring): - hexstring = hexstring.encode() - key = binascii.unhexlify(hexstring) - if key not in db: - raise HttpNotFound() - - return db[key] - - -codec = Codec() - - -class UrlController(RestController): - - @template('successfully.mak') - def post(self): - return dict(hash_id=codec.store(context.form.get('url'))) - - @text - def get(self, hexstring): - raise HttpFound(codec.resolve(hexstring)) - diff --git a/urlshortener/makomodules/__init__.py b/urlshortener/makomodules/__init__.py old mode 100644 new mode 100755 diff --git a/urlshortener/makomodules/__pycache__/__init__.cpython-36.pyc b/urlshortener/makomodules/__pycache__/__init__.cpython-36.pyc old mode 100644 new mode 100755 diff --git a/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc b/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc old mode 100644 new mode 100755 diff --git a/urlshortener/makomodules/__pycache__/successfully.mak.cpython-36.pyc b/urlshortener/makomodules/__pycache__/successfully.mak.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eae802c1578e0fef86c69c24bb4321ae50e90102 GIT binary patch literal 1294 zcma)6OK;pZ5GM6nS>AOVH@Wn*aDk$GNMtxb5UiC&3d9Y9BHO^500nyxxFRjdrXC=v z_<{9la|)0jl7Eq3(F1QqPx%Wyb+n3|ZO{TG!NF*T^ZI6}2ZKTI-4E!ucP>JIqP1lK z{{)VD34|er1u8JXg+;8wCN@SKpE$$;>JpcGq{n@-!7LImn`|u!1 ztSWd|R2eM_%EGfso~oKAJZz*;StT_uxePTgYC$zup=y$ZD|OrmadE$(riZ zlIIC-Q-S5dX`}uOM-d@Fk19-9an9%vl8G{1h)ED-oU%!z zb1nGfwG_jfDxp>11}@$RTufJj}GN$6+X{go>rTY(o%r2MEFew&3)!54)v~CGUcK zI@&Q#>r%E4U)n8kTCxSiY|UQ%@-jX;1SF20PoEj5g-P~XmDiObLl>=OYWSOif3 delta 15 WcmbQiID?Vhn3tDJMSyi8`$Pa2#RBsH diff --git a/urlshortener/models/__pycache__/urls.cpython-36.pyc b/urlshortener/models/__pycache__/urls.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77621f6065fb2efa320da096704df36a134d9f6c GIT binary patch literal 558 zcmY*XJ&)8d5cNlr4SR$`9DgDdw-PiI2p#AIqPb?d#voZH9&V$vlihK0DD~3vCuk6V z$t~6W1uDiH5MaxrH)G9v&mT{!YWeN!(YyDYu^;T8kr6(l6`oSC%yP#(SKJFFyi}5> znsAxVRqhK_aQ2#6X|vDFW{~ftTG)Ke>f)BVSuNw@O*g<5U@X=Hw%t`M*RUI*YoHeK z_#7H%&)4(d3 z+w?d<2l#(N>fpkmcDkK#K|JXuLeeXFChqY=?V>K@GVGjj%?A8*aB^^g=^bN*5QdMV j+fJuFdQ1$n" % ( - self.url) + id = Field(Integer, primary_key=True, autoincrement=True) + url = Field(String(50)) + # def __repr__(self): + # return "" % ( + # self.url + # ) diff --git a/urlshortener/templates/index.mak b/urlshortener/templates/index.mak old mode 100644 new mode 100755 diff --git a/urlshortener/templates/successfully.mak b/urlshortener/templates/successfully.mak old mode 100644 new mode 100755 diff --git a/urlshortener/tests/__init__.py b/urlshortener/tests/__init__.py old mode 100644 new mode 100755 diff --git a/urlshortener/tests/__pycache__/__init__.cpython-36.pyc b/urlshortener/tests/__pycache__/__init__.cpython-36.pyc old mode 100644 new mode 100755 diff --git a/urlshortener/tests/__pycache__/helpers.cpython-36.pyc b/urlshortener/tests/__pycache__/helpers.cpython-36.pyc index 98e1c1f1da314b287decb0c456fcf426bb1d7fe1..89f60b64777557fe138a52f34aa8a5a4e4c841b2 100644 GIT binary patch literal 1264 zcmZWoOK;Oa5Z+xs;yO;%773xAB5t`P2RK!zqO=n9l1fm7WDb_=-8f0t4|eTVjlwCB zdgCW>=fEG@D<}Q}CuW>J5?E=+;~DSHH{UmY(dqa%KmE@gi;!PrZQ0?vijBrcB1@?7ZZIMxCpPCB^~IXG>I%SjSflOj*>=>0-yxbz_yK|;z&$e<7jZB9c+ zxVL0PIpfySThOp2TyAq`Nx=8G%UeqlZru`_gg$~Y!JCtlro4=`9wxN8nh<<4*uV?X z&%jhs(d)5u=dJyz%%YD z`xJbQ3=lSZvVmrme}IAGgQ}jv)-S;z4E21@rj*l^EZA3TZcQ0y7#}gzxw62wM|4iV zvpM@l0jxDNt+9wXa1wToKAyijdw&`pou8f!dyZ*?){{J{ic66jAIAMoV&g)0BIgP* zD5L?Zp7+2M5PQzUVb2X}EdDF)UgC9nrDrWbBb4>N)8lWhQ hHyDET30;B5ijQE{M#6iw>iH1It>G&GwgMJde*u*3E0+KO literal 410 zcmY*Vy-ve05cW?h(l$kcryxr+bVaDB0~-rSNM^81eUN~i7&{T_46ndL@Jd;kcm*cT zDHJ&AK7Hr=zO&DZ*=({%$Jeifkax^oB*>PS;Rrz!O%1VBP#QTiOt3SexlUe)PJljh z!8N-e`RD`HB&YrU72KRUcL||gsQ~Bec>WU<$r3XhA^;Io6TyJrbCGC@Q&>Mm`_7w> z`c%qVS&*`yNNF40naDFKA3J5fJ6Y#VC>!5G4Zfc$=S;O$ZPnCo#Eqc?AD{7*e*y1eWt0E_ diff --git a/urlshortener/tests/__pycache__/test_root.cpython-36.pyc b/urlshortener/tests/__pycache__/test_root.cpython-36.pyc deleted file mode 100644 index 921c5637d8aec0a003399f9479134e4cb5e58d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmY*X&1xGl5FY*5S-WSIDU|YXTd=e43GV=KE%}ugBxzpX0&j-vZz-be1Onlq|d>aNtA4Z^EI&}|5J57apY4owK<5Pu4kuOMbyI3jP8CiHsuz?$5canCoQ(xp( zY^jvfrL5Fe3D_vsN4I(-VsA&iIADr-(oI00)cNevb9ItE2pDbj#R4b&bl~x>p&pWI zd};K$aaaC;zDuJbP-2|jHANZBA^uq7BBHY%LsQ0yPC8)uHTCzgQP$cv@d5mp@*ijU zvaT?%>Sa+?h0DL!{x+XEcTz^Df(wyEQYq^;*W$*VwKk$3C M-DYZ}j)s}|559c2 Date: Thu, 31 May 2018 14:35:08 +0430 Subject: [PATCH 11/16] Add oauth --- .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/workspace.xml | 640 ++++--- data/logs/urlshortener-error.log | 1603 +++++++++++++++++ data/logs/urlshortener.log | 1603 +++++++++++++++++ dfg | 124 ++ setup.py | 1 + urlshortener.egg-info/SOURCES.txt | 5 +- urlshortener.egg-info/requires.txt | 1 + urlshortener/__init__.py | 2 +- .../__pycache__/__init__.cpython-36.pyc | Bin 1393 -> 1400 bytes urlshortener/basedata/__init__.py | 0 urlshortener/basedata/client_secrets.json | 1 + .../__pycache__/auth.cpython-36.pyc | Bin 0 -> 1943 bytes .../__pycache__/helpers.cpython-36.pyc | Bin 1090 -> 1096 bytes .../__pycache__/root.cpython-36.pyc | Bin 2573 -> 1851 bytes .../__pycache__/urls.cpython-36.pyc | Bin 1461 -> 928 bytes urlshortener/controllers/auth.py | 66 + urlshortener/controllers/helpers.py | 10 +- urlshortener/controllers/root.py | 62 +- urlshortener/controllers/urls.py | 24 + .../__pycache__/index.mak.cpython-36.pyc | Bin 1226 -> 1336 bytes .../successfully.mak.cpython-36.pyc | Bin 1294 -> 1401 bytes urlshortener/makomodules/index.mak.py | 4 +- urlshortener/makomodules/successfully.mak.py | 12 +- urlshortener/templates/index.mak | 3 + urlshortener/templates/successfully.mak | 5 +- urlshortener/tests/test_auth.py | 32 + urlshortener/tests/test_root.py | 27 - urlshortener/tests/test_urls.py | 41 + 29 files changed, 3919 insertions(+), 352 deletions(-) create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 dfg create mode 100644 urlshortener/basedata/__init__.py create mode 100644 urlshortener/basedata/client_secrets.json create mode 100644 urlshortener/controllers/__pycache__/auth.cpython-36.pyc mode change 100755 => 100644 urlshortener/controllers/__pycache__/urls.cpython-36.pyc create mode 100644 urlshortener/controllers/auth.py create mode 100644 urlshortener/controllers/urls.py mode change 100755 => 100644 urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc mode change 100755 => 100644 urlshortener/makomodules/index.mak.py mode change 100755 => 100644 urlshortener/makomodules/successfully.mak.py create mode 100644 urlshortener/tests/test_auth.py create mode 100644 urlshortener/tests/test_urls.py diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index bbd0b13..ebe6e2a 100755 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,43 +2,27 @@ - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - + - - - - - - - + - + + + + + + + + + + + + + + + + + - - - - - - + + @@ -238,7 +290,7 @@ - + - + - + - + - + @@ -335,7 +382,7 @@ - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -410,35 +457,35 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -459,16 +506,15 @@ - - + - + - + @@ -476,6 +522,7 @@ + @@ -486,6 +533,28 @@ + + + file://$PROJECT_DIR$/urlshortener/controllers/auth.py + 57 + + + file://$PROJECT_DIR$/urlshortener/controllers/auth.py + 61 + + + file://$PROJECT_DIR$/urlshortener/controllers/root.py + 34 + + + file://$PROJECT_DIR$/urlshortener/controllers/auth.py + 52 + + @@ -493,32 +562,71 @@ - + + + + + + + + + - + - ~isinstance(db_id, int) + context.query_string Python EXPRESSION - isinstance(db_id, int) + context.query_string.get('state') Python EXPRESSION - response + context.query_string().pop() + Python + EXPRESSION + + + context + Python + EXPRESSION + + + context.query_string().get('state') + Python + EXPRESSION + + + m = context.query_string + Python + EXPRESSION + + + context.query_string().values() + Python + EXPRESSION + + + query_dic + Python + EXPRESSION + + + contexts.context.query_string Python EXPRESSION @@ -542,93 +650,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -650,13 +671,6 @@ - - - - - - - @@ -769,111 +783,203 @@ - + + - - + + - + - - + + - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - - + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - + + - + - - + + + + + + + + + - - + + - + - - + + - + + + + + + + + - - + + diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log index 8b78deb..26e8a03 100755 --- a/data/logs/urlshortener-error.log +++ b/data/logs/urlshortener-error.log @@ -7842,3 +7842,1606 @@ Traceback (most recent call last): File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve db_id, = hashids.decode(hash_id) ValueError: not enough values to unpack (expected 1, got 0) +2018-05-29 12:17:54 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Urls' object is not iterable +2018-05-29 12:22:48 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/urls.py", line 24, in get + HttpFound(url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got ) +2018-05-29 12:24:12 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/urls.py", line 24, in get + HttpFound(url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got ) +2018-05-29 12:24:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 12:25:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 13:24:50 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 343, in _check + return self._load(template.filename, uri) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 323, in _load + **self.template_args) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 338, in __init__ + module = self._compile_from_file(path, filename) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 395, in _compile_from_file + self.module_writer) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 720, in _compile_module_file + generate_magic_comment=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 685, in _compile + node = lexer.parse() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lexer.py", line 241, in parse + if self.match_expression(): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lexer.py", line 393, in match_expression + text, end = self.parse_until_text(True, r'\|', r'}') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lexer.py", line 133, in parse_until_text + **self.exception_kwargs) +mako.exceptions.SyntaxException: Expected: \|,} in file '/home/mohammad/workspace/urlshortener/urlshortener/templates/successfully.mak' at line: 8 char: 36 +2018-05-29 13:43:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 13:44:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 13:45:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 13:47:08 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 13:55:04 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 14:11:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 14:44:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 24, in post + credentials = flow.step2_exchange(code) +NameError: name 'code' is not defined +2018-05-29 15:50:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 24, in post + credentials = flow.step2_exchange(code) +NameError: name 'code' is not defined +2018-05-30 12:19:51 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 12:21:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 12:28:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 12:28:59 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + state = context.query_string('state') +TypeError: 'dict' object is not callable +2018-05-30 12:46:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query_dic = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 13:57:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 44, in get + flow.fetch_token() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 192, in fetch_token + raise ValueError('Please supply either code or ' +ValueError: Please supply either code or authorization_response parameters. +2018-05-30 14:04:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in get + flow.fetch_token(authorization_response='https://www.googleapis.com/oauth2/v1/userinfo') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 187, in fetch_token + state=self._state) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 174, in parse_request_uri_response + response = parse_authorization_code_response(uri, state=state) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 227, in parse_authorization_code_response + raise MissingCodeError("Missing code parameter in response.") +oauthlib.oauth2.rfc6749.errors.MissingCodeError: (missing_code) Missing code parameter in response. +2018-05-30 14:08:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in get + flow.fetch_token(authorization_response='https://www.googleapis.com/oauth2/v1/userinfo', code=query_string_code) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidClientIdError: (invalid_request) Missing parameter: redirect_uri +2018-05-30 14:37:10 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:17:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:17:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:18:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:21:47 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v2 +2018-05-30 16:22:40 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:23:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:27:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:28:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.email', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.email.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 16:36:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:42:38 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v2 +2018-05-30 16:43:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v2 +2018-05-30 16:43:32 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:47:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:48:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:50:40 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 42, in get + code=query_string_code + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Bad Request +2018-05-30 16:56:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('email', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: email version: v1 +2018-05-30 17:04:48 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:14:38 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:15:17 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 17:15:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:25:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:28:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:29:50 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:30:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:31:53 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 09:48:57 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-31 09:50:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 09:52:35 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-31 10:47:56 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 11:03:07 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 50, in get + headers={'content-type: application/json' + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 112, in post + return request('post', url, data=data, json=json, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 58, in request + return session.request(method=method, url=url, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 494, in request + prep = self.prepare_request(req) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 437, in prepare_request + hooks=merge_hooks(request.hooks, self.hooks), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 306, in prepare + self.prepare_headers(headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 438, in prepare_headers + for header in headers.items(): +AttributeError: 'set' object has no attribute 'items' +2018-05-31 11:28:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + http = credentials.authorize(http) +AttributeError: 'Credentials' object has no attribute 'authorize' +2018-05-31 11:48:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:18:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:18:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:18:45 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 44, in get + code=query_string_code + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Code was already redeemed. +2018-05-31 12:21:15 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:23:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) +AttributeError: 'Credentials' object has no attribute 'request' +2018-05-31 12:55:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) +AttributeError: 'Credentials' object has no attribute 'request' +2018-05-31 12:56:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 58, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:57:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 58, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log index 8b78deb..26e8a03 100755 --- a/data/logs/urlshortener.log +++ b/data/logs/urlshortener.log @@ -7842,3 +7842,1606 @@ Traceback (most recent call last): File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in resolve db_id, = hashids.decode(hash_id) ValueError: not enough values to unpack (expected 1, got 0) +2018-05-29 12:17:54 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Urls' object is not iterable +2018-05-29 12:22:48 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/urls.py", line 24, in get + HttpFound(url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got ) +2018-05-29 12:24:12 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 15, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/urls.py", line 24, in get + HttpFound(url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/exceptions.py", line 78, in __init__ + context.response_headers.add_header('Location', location) + File "/usr/lib/python3.6/wsgiref/headers.py", line 175, in add_header + _value = self._convert_string_type(_value) + File "/usr/lib/python3.6/wsgiref/headers.py", line 46, in _convert_string_type + " of type str (got {0})".format(repr(value))) +AssertionError: Header names/values must be of type str (got ) +2018-05-29 12:24:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 12:25:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 13:24:50 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 343, in _check + return self._load(template.filename, uri) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 323, in _load + **self.template_args) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 338, in __init__ + module = self._compile_from_file(path, filename) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 395, in _compile_from_file + self.module_writer) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 720, in _compile_module_file + generate_magic_comment=True) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 685, in _compile + node = lexer.parse() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lexer.py", line 241, in parse + if self.match_expression(): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lexer.py", line 393, in match_expression + text, end = self.parse_until_text(True, r'\|', r'}') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lexer.py", line 133, in parse_until_text + **self.exception_kwargs) +mako.exceptions.SyntaxException: Expected: \|,} in file '/home/mohammad/workspace/urlshortener/urlshortener/templates/successfully.mak' at line: 8 char: 36 +2018-05-29 13:43:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 13:44:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 247, in get_template + return self._check(uri, self._collection[uri]) +KeyError: '' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 21, in wrapper + template_ = lookup.get_template(template_name) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/lookup.py", line 261, in get_template + "Cant locate template for uri %r" % uri) +mako.exceptions.TopLevelLookupException: Cant locate template for uri '' +2018-05-29 13:45:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 13:47:08 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 13:55:04 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 14:11:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 22, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/successfully.mak.py", line 23, in render_body + __M_writer(str(hash_id)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-05-29 14:44:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 24, in post + credentials = flow.step2_exchange(code) +NameError: name 'code' is not defined +2018-05-29 15:50:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 24, in post + credentials = flow.step2_exchange(code) +NameError: name 'code' is not defined +2018-05-30 12:19:51 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 12:21:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 12:28:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 12:28:59 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + state = context.query_string('state') +TypeError: 'dict' object is not callable +2018-05-30 12:46:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 35, in get + query_dic = context.query_string() +TypeError: 'dict' object is not callable +2018-05-30 13:57:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 44, in get + flow.fetch_token() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 192, in fetch_token + raise ValueError('Please supply either code or ' +ValueError: Please supply either code or authorization_response parameters. +2018-05-30 14:04:31 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in get + flow.fetch_token(authorization_response='https://www.googleapis.com/oauth2/v1/userinfo') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 187, in fetch_token + state=self._state) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 174, in parse_request_uri_response + response = parse_authorization_code_response(uri, state=state) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 227, in parse_authorization_code_response + raise MissingCodeError("Missing code parameter in response.") +oauthlib.oauth2.rfc6749.errors.MissingCodeError: (missing_code) Missing code parameter in response. +2018-05-30 14:08:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in get + flow.fetch_token(authorization_response='https://www.googleapis.com/oauth2/v1/userinfo', code=query_string_code) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidClientIdError: (invalid_request) Missing parameter: redirect_uri +2018-05-30 14:37:10 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:17:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:17:43 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:18:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-30 16:21:47 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v2 +2018-05-30 16:22:40 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:23:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 51, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:27:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:28:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.email', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.email.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 16:36:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:42:38 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v2', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v2 +2018-05-30 16:43:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v2 +2018-05-30 16:43:32 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:47:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:48:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 16:50:40 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 42, in get + code=query_string_code + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Bad Request +2018-05-30 16:56:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('email', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: email version: v1 +2018-05-30 17:04:48 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:14:38 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:15:17 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-30 17:15:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:25:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:28:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:29:50 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:30:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-30 17:31:53 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 09:48:57 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 230, in build + raise e + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 272, in _retrieve_discovery_doc + raise HttpError(resp, content, uri=actual_url) +googleapiclient.errors.HttpError: +2018-05-31 09:50:28 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 09:52:35 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 48, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-05-31 10:47:56 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 11:03:07 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 50, in get + headers={'content-type: application/json' + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 112, in post + return request('post', url, data=data, json=json, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 58, in request + return session.request(method=method, url=url, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 494, in request + prep = self.prepare_request(req) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 437, in prepare_request + hooks=merge_hooks(request.hooks, self.hooks), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 306, in prepare + self.prepare_headers(headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 438, in prepare_headers + for header in headers.items(): +AttributeError: 'set' object has no attribute 'items' +2018-05-31 11:28:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + http = credentials.authorize(http) +AttributeError: 'Credentials' object has no attribute 'authorize' +2018-05-31 11:48:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:18:26 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:18:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:18:45 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 44, in get + code=query_string_code + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Code was already redeemed. +2018-05-31 12:21:15 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', http) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:23:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) +AttributeError: 'Credentials' object has no attribute 'request' +2018-05-31 12:55:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in get + drive = build('userinfo.profile', 'v1', credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) +AttributeError: 'Credentials' object has no attribute 'request' +2018-05-31 12:56:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 58, in get + drive = build('userinfo.profile', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 222, in build + requested_url, discovery_http, cache_discovery, cache) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc + resp, content = http.request(actual_url) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1514, in request + (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1264, in _request + (response, content) = self._conn_request(conn, request_uri, method, body, headers) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1187, in _conn_request + conn.connect() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/httplib2/__init__.py", line 1013, in connect + self.sock = self._context.wrap_socket(sock, server_hostname=self.host) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake + match_hostname(self.getpeercert(), self.server_hostname) + File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname + % (hostname, ', '.join(map(repr, dnsnames)))) +ssl.CertificateError: hostname 'userinfo.profile.googleapis.com' doesn't match either of '*.googleapis.com', '*.clients6.google.com', '*.cloudendpointsapis.com', 'cloudendpointsapis.com', 'googleapis.com' +2018-05-31 12:57:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 58, in get + drive = build('userinfo', 'v1', credentials=credentials) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper + return wrapped(*args, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build + "name: %s version: %s" % (serviceName, version)) +googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 diff --git a/dfg b/dfg new file mode 100644 index 0000000..63892c5 --- /dev/null +++ b/dfg @@ -0,0 +1,124 @@ +General + \copyright show PostgreSQL usage and distribution terms + \crosstabview [COLUMNS] execute query and display results in crosstab + \errverbose show most recent error message at maximum verbosity + \g [FILE] or ; execute query (and send results to file or |pipe) + \gexec execute query, then execute each value in its result + \gset [PREFIX] execute query and store results in psql variables + \gx [FILE] as \g, but forces expanded output mode + \q quit psql + \watch [SEC] execute query every SEC seconds + +Help + \? [commands] show help on backslash commands + \? options show help on psql command-line options + \? variables show help on special variables + \h [NAME] help on syntax of SQL commands, * for all commands + +Query Buffer + \e [FILE] [LINE] edit the query buffer (or file) with external editor + \ef [FUNCNAME [LINE]] edit function definition with external editor + \ev [VIEWNAME [LINE]] edit view definition with external editor + \p show the contents of the query buffer + \r reset (clear) the query buffer + \s [FILE] display history or save it to file + \w FILE write query buffer to file + +Input/Output + \copy ... perform SQL COPY with data stream to the client host + \echo [STRING] write string to standard output + \i FILE execute commands from file + \ir FILE as \i, but relative to location of current script + \o [FILE] send all query results to file or |pipe + \qecho [STRING] write string to query output stream (see \o) + +Conditional + \if EXPR begin conditional block + \elif EXPR alternative within current conditional block + \else final alternative within current conditional block + \endif end conditional block + +Informational + (options: S = show system objects, + = additional detail) + \d[S+] list tables, views, and sequences + \d[S+] NAME describe table, view, sequence, or index + \da[S] [PATTERN] list aggregates + \dA[+] [PATTERN] list access methods + \db[+] [PATTERN] list tablespaces + \dc[S+] [PATTERN] list conversions + \dC[+] [PATTERN] list casts + \dd[S] [PATTERN] show object descriptions not displayed elsewhere + \dD[S+] [PATTERN] list domains + \ddp [PATTERN] list default privileges + \dE[S+] [PATTERN] list foreign tables + \det[+] [PATTERN] list foreign tables + \des[+] [PATTERN] list foreign servers + \deu[+] [PATTERN] list user mappings + \dew[+] [PATTERN] list foreign-data wrappers + \df[antw][S+] [PATRN] list [only agg/normal/trigger/window] functions + \dF[+] [PATTERN] list text search configurations + \dFd[+] [PATTERN] list text search dictionaries + \dFp[+] [PATTERN] list text search parsers + \dFt[+] [PATTERN] list text search templates + \dg[S+] [PATTERN] list roles + \di[S+] [PATTERN] list indexes + \dl list large objects, same as \lo_list + \dL[S+] [PATTERN] list procedural languages + \dm[S+] [PATTERN] list materialized views + \dn[S+] [PATTERN] list schemas + \do[S] [PATTERN] list operators + \dO[S+] [PATTERN] list collations + \dp [PATTERN] list table, view, and sequence access privileges + \drds [PATRN1 [PATRN2]] list per-database role settings + \dRp[+] [PATTERN] list replication publications + \dRs[+] [PATTERN] list replication subscriptions + \ds[S+] [PATTERN] list sequences + \dt[S+] [PATTERN] list tables + \dT[S+] [PATTERN] list data types + \du[S+] [PATTERN] list roles + \dv[S+] [PATTERN] list views + \dx[+] [PATTERN] list extensions + \dy [PATTERN] list event triggers + \l[+] [PATTERN] list databases + \sf[+] FUNCNAME show a function's definition + \sv[+] VIEWNAME show a view's definition + \z [PATTERN] same as \dp + +Formatting + \a toggle between unaligned and aligned output mode + \C [STRING] set table title, or unset if none + \f [STRING] show or set field separator for unaligned query output + \H toggle HTML output mode (currently off) + \pset [NAME [VALUE]] set table output option + (NAME := {border|columns|expanded|fieldsep|fieldsep_zero| + footer|format|linestyle|null|numericlocale|pager| + pager_min_lines|recordsep|recordsep_zero|tableattr|title| + tuples_only|unicode_border_linestyle| + unicode_column_linestyle|unicode_header_linestyle}) + \t [on|off] show only rows (currently off) + \T [STRING] set HTML tag attributes, or unset if none + \x [on|off|auto] toggle expanded output (currently off) + +Connection + \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} + connect to new database (currently "urlshortener_dev") + \conninfo display information about current connection + \encoding [ENCODING] show or set client encoding + \password [USERNAME] securely change the password for a user + +Operating System + \cd [DIR] change the current working directory + \setenv NAME [VALUE] set or unset environment variable + \timing [on|off] toggle timing of commands (currently off) + \! [COMMAND] execute command in shell or start interactive shell + +Variables + \prompt [TEXT] NAME prompt user to set internal variable + \set [NAME [VALUE]] set internal variable, or list all if no parameters + \unset NAME unset (delete) internal variable + +Large Objects + \lo_export LOBOID FILE + \lo_import FILE [COMMENT] + \lo_list + \lo_unlink LOBOID large object operations diff --git a/setup.py b/setup.py index 11e15cc..42e38dc 100755 --- a/setup.py +++ b/setup.py @@ -12,6 +12,7 @@ 'restfulpy >= 0.41.3', 'hashids', 'nanohttp', + 'oauth2client', # Deployment 'gunicorn', diff --git a/urlshortener.egg-info/SOURCES.txt b/urlshortener.egg-info/SOURCES.txt index b11e52f..77577d6 100644 --- a/urlshortener.egg-info/SOURCES.txt +++ b/urlshortener.egg-info/SOURCES.txt @@ -7,6 +7,7 @@ urlshortener.egg-info/entry_points.txt urlshortener.egg-info/requires.txt urlshortener.egg-info/top_level.txt urlshortener/controllers/__init__.py +urlshortener/controllers/auth.py urlshortener/controllers/helpers.py urlshortener/controllers/root.py urlshortener/makomodules/__init__.py @@ -16,5 +17,5 @@ urlshortener/models/__init__.py urlshortener/models/urls.py urlshortener/tests/__init__.py urlshortener/tests/helpers.py -urlshortener/tests/test_root.py -urlshortener/tests/test_url.py \ No newline at end of file +urlshortener/tests/test_auth.py +urlshortener/tests/test_root.py \ No newline at end of file diff --git a/urlshortener.egg-info/requires.txt b/urlshortener.egg-info/requires.txt index eeb6beb..235a2d1 100644 --- a/urlshortener.egg-info/requires.txt +++ b/urlshortener.egg-info/requires.txt @@ -1,6 +1,7 @@ restfulpy>=0.41.3 hashids nanohttp +oauth2client gunicorn webtest nose diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py index a9cb72a..c08001f 100755 --- a/urlshortener/__init__.py +++ b/urlshortener/__init__.py @@ -31,7 +31,7 @@ def insert_basedata(self): # pragma: no cover # noinspection PyArgumentList def insert_mockup(self): - url = Url(url='www.varzesh3.com') + url = Url(url='http://www.varzesh3.com') DBSession.add(url) DBSession.commit() diff --git a/urlshortener/__pycache__/__init__.cpython-36.pyc b/urlshortener/__pycache__/__init__.cpython-36.pyc index 001e3584f49f7ae661b6da72a752453b1c961118..79ab6e31aaa469c1c0015390ae7afe741ce58f00 100644 GIT binary patch delta 32 ocmey!^@EGkn3tF9lpt^Prj4A_nK{HWN=gc>^z}C{WWK-%0H*>9MgRZ+ delta 25 hcmeyt^^uFyn3tF9<`(Yg)f+jdGcyWoUcr2U5dd-R2#^2( diff --git a/urlshortener/basedata/__init__.py b/urlshortener/basedata/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/urlshortener/basedata/client_secrets.json b/urlshortener/basedata/client_secrets.json new file mode 100644 index 0000000..2d5fea9 --- /dev/null +++ b/urlshortener/basedata/client_secrets.json @@ -0,0 +1 @@ +{"web":{"client_id":"781215968670-qg3g1nadrm9k2rp8nrhcai73sa5o3fiq.apps.googleusercontent.com","project_id":"urlshortener-205611","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"oj5qITnaVreCDFrXYATj9BtO","redirect_uris":["http://localhost:8080/auth"]}} \ No newline at end of file diff --git a/urlshortener/controllers/__pycache__/auth.cpython-36.pyc b/urlshortener/controllers/__pycache__/auth.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f6b70f6af33b4f4b5962c1ae5c4dd7fb92070b56 GIT binary patch literal 1943 zcmbVMOK;;g5SFNib1w7IwK{m(*k>_1dfKB(UAP+oB6ogZT<1{_IJNVj`N$d z@r0m1hoOG~!5!}APT^9wAe0my^;}#dxnBe{C_)+*4caIo8Wm02tZZK1D%!MN>3-g! zUGVqwExHZgAm1r^w0C3MrMs1_Py51!*MmXC-rD8int*Jq36Iu<-V@u?{pnlN196Wx z$1ZPO6S~jaVxQd?`_n_-;a$FUO};1ekUsd*;oE%YwZnHru=eOf?!R;fz2D(3&cL(& zRA!}Z@Jy9SA#5W#)3d}(27%rBMriXwmPW}u7s~oZ{9tVJD`RFSa$a&9rC@|LZ5ub* zz_tCaznGiJ@wejarBD|_o#gWJ6xM^Yd6x49iDMg`C0g*rB#VBUXQDJri&P1t<>h5OmU5hnWR~eTmBlcD*u%LNDl11ao+&xXaskmpoywWei$nYue$8c? zp*ymrcgn(p$Pbxb{{)50^fRmj1NK8%rR@HE|u7wN}A0 z;Ldqd<)+P>yals1_=l#mcHm5%QyXZL7yu%bT)+ge`ya3q)rA|VK8QB~zxd=036+@9 zyLn@)byXno>`EO%Fx*2w z2H}v7i?2^2m%tm55Onx@VH9~=-XcP7$AIeJ{Kg9LVO0En8x-U*)(7{n9j%brWC?8l z5o!mx=%1=B@KW0#21MU8jg;!mnwp82#rD)8n3tE!$eu5H-A2wUOk#Wt3=G8rK!SmpixC1@7oC3=GA5K!SmpixC0^CVyrsPsyl3zhc}bO6G0R6?-ePqLlnVs+V0N4kxkvlY$I%Zt-1|{6s4D zBjMgX(%X9s@sgfn+_9=F(>@bQpVXC>bx{auf+6tYQunAi{2Ua%&h&8fRQ^?dnO7i- zKKk&UP%5u+5qz4dQO?yV@b2B29^w3*EELQR%#SJFNKL3kIW00R7Oj~qj@77^T2w-! zy2=VYM9=>F9ANIiP=`PSNhl`?6Aq`GJ%VTxmpc%RYrMPD{QI|ucm;kqGZ-f@R1Abu zO~y2*pv+E9@QaYvYi63@!~ZUrMw&hmrK$Bt6z9JaxeFHl`FJp@OEDKYu%sD@FAl)Kk-9InU}TQW{2p-i;D-o0X=7cJo|CBVhlX}U3PF4?#RmL1(* zI^4U)qVi9T17%>`k=D~ifb_k=0785Tyn#vzM$jB-&U;%Doi*-xElYWXY^-!9wR)KA zkwl=3cQF%kF0pJ)be|xn3KG&NIHKhBX(4-+Vpqr}iZD$1IudN84Pt8*I~$!w$`ru6YtLU{<@J2GLFRW)W|-6&Wb7WiZzR5Vo3 zbl%@+P6_`D#I&BuFgutG`5KY{3HDQRd$ZR!E%a^V7{Uv5EF>14!y9&>$3>y~R&3KA zj6^YoH)@R^cC!U!jrp6nd<%%#{zA;}*O}y>!D}t$Y^senl{vgQ&jH$m@2}sI53n!Q dt3dW>6Mv9nJJY5UJ3CS5D5M?81EX#D{R3&lQ67CtL`y_Zh=>-9ugSFq;TJ*H79Egv zWFXnX<(EKmL3BaVg}KAmy57nO(bYOEutfA&7Qm`M1@a~h|#piH$((@~KtjnV6+>_eul!Z}cmPu7bpBXdR zEzR9>T8OGK0F68_RTIUv%tb+uRvTZy`fn057@aNuIz32>9;^I8ndd1iyL0=#)H*E- zSkU+^(W6x8T^Kvxsq8sLM`#ronNPCB$XR=;vMoI-m63&1pmKGRnE^U{@-P_Of~K!R zCkdy5a3-i=PY8E}BV2g9_M(2p?%W=rJw6^Z2iguaeHS`I#?-I{9XoR>=rcNY7vzY| znYv+EEje<)#+y3`AdGy3+cd_(+!;3)^vIpN04KAz0l#~p3SryIdpMQqP(?Uy4%5s? z74IEZ-Y`|#R8As?SjY2+-VOp<> zQ}HWNSHR|mIETa~5hPryBGN+r9n zrS3pS=sI<22)}?ubQavX-M0p(aJpb~3g??JK{)3WU}1)h9peJ9-W&o0zyfeb4uIA; zhD&XLeJ@b!@Tzn#S0BZpsd}GeqJjH|( z6roM21+Qv6lFF77tD@xySFJccR>g6T)^MG9Zk>J|c6$q&wl(3*+V4^0+n{Vz)?6KKs$Y$5m3Ekry@3IU|pV;0Zqf|7ZX7HRPyo+M_Z zfuNdkJjfEQ=NIWX}*PXSc3Hs<5_Uc+eg00+PsdCjvn-{z3PD*V)0{w}fP3tF0 z&&3ksXx&0esNKS-E$A;m_%$AmLU`3Sc37y#QR2;!JkUl#l$O%gW-MCWgm!XvWY0b( zhF$+W6p&Tg*QwwUBRpG;FI@s4HQSbo;vL2=nrb^D%cE0`U-a9*6|609(g1Czu4(g#2VpsU(vI*cEFpK3xzidOiq zNxgw~8_Sf_2j-NS?xU>!+%-lrgX+;WP{@&WbPz~;%^KkkaQY$cxALVt+$$3$K8Jr9 zN=+xG@+J^DvlO{g!l{CfYp%YD1)`C9wrE7VG-3g~BPVn^YreA@b}t1W^(mtr`27p* CzcZcy diff --git a/urlshortener/controllers/__pycache__/urls.cpython-36.pyc b/urlshortener/controllers/__pycache__/urls.cpython-36.pyc old mode 100755 new mode 100644 index 8c9d1f2e31a1527c635d0986a7e7609d74b0e5ec..b671328260157eb972e4a9b7202f8cd0900003a0 GIT binary patch literal 928 zcmY*XOK%e~5cXp?`$$q%LMj#Fz%?9_16PEqwv>uPgj(@h5UXwMlBD)J9Xmj(^wRX& zAHrYql@ot~6XT7jf~^_Pc&wRkzVWkeH~*G(KfPvz{307GLVFLzenBOOpo(Z(P|XUa zdBJs5L^>{F8e&YfbW$XZ%~h(iB5UkO<+@$8DUq3oMeB|h=_?`1gk=VtqrIFXlgjQCFQhsGV5c`bYvytNrQ`NQ?7&kpxb zrL_}Nqmvw0c03UlP5u_tRd){Ri5(kovX+3ik*$;)h1&lXM`I7g?xK>Upn?=kazO>V zB`aD)f+OC@N0`r!kh5k5uG%OEC=FkWZAYebNmukUy=L!8{U{=iUF7hTlCT|LksJDv z)a(Os(KL3g6`dwaCg>fVrYmyImt2sG6yCTjyma}JPunYcgLtq$8zOi%5xtI2#_Jw^ zOURKC(&z6gHJ2{|3_$1x5>!4${$K%Fu(R`tauUk3g>Rc$mIlfiPY7K=9A0oFDl}=O zI$u{PC!&bO86NNeU;HGngU6qv!Psay&}Lj|U5UYW0~dByjpP6`+%x^ZGrAwIZ36w- z!t<}vbuppcMnxE-+jNU|*bYr;i(RFG>^?pj;ulHFvaYl&OP`meHe#-V-6_kUoB_@y8O*5uuD(&Y4Az+ZSiSF=UmfNrRT ufE!X&es{C!K4OyyJKQzAH+43!1Og!d^6B$+A1^3+Hb?cCb+G*o%lTh@5apt+mA2s+*^J3doE6cZ{)`EK;DC`{{|35 z(2CSFr8P@g%~M``saN}{Pl;fHS3w=7AtfbAqc=o&!apOz?^rsJgN~#z=mHUfE|j$6 z=`9icMUufe+)NVRuKy{u*>4-8+NzSu4*xJ_Hg3)9cHRgZ7GRMdjUAx6*LkQor+A#& z$jEwD z082Ur0y?Vi2)3mEkuU5MHFOH{ly{_~Q?DbR*peClI8?tbsqvR=mzZE0E*V&(jzAbb zw%!CPScHhLMx$h4V{LL}^oP<+Y&gmFq$&@rrziQ(HjqsLS=m68M?jBd;=o1+Ws~co zEWufRtjfa^FiUhxI2@DJq2+T`S$-@}z7lmGQvd(;XwuelRJW77u5&T^(5hoS%L_RI zPd#ask&RTVKgf9h7TOthW+&Fyrd4u?lpqiq)0l12h(>I2%kj74JXTmlMjeYUK|mIP zrwisf>KNm|*tP-wPO0HbwuMa5apJ3WIH7I>*ulKHs8(&D5}zmG>W;I4MH^K%N9rEh zu;d;dpgB}hx7EKAZ8`=ZkZ=q;V2iar=?f1CX`?J_@>*t@jkBz7#k@j!m}T$hdDUCg z7Tlq*rEY|BK{1{h0ALu6(-W~McA5fyt`=s$2U{a0mwhQYwiiy)8MIUCNxz>VkOL6_ zC81sWM^)D|ve?k`qL5l2&a3KVr_PTHoCaL@#qf@I%*qh#Rl}#=)WuG)5!sWOLLZ9Q(Wp@gr+IIn0KG@V#1mrwnedr%hvHH~NIp~nm%kZ~X!$acZBve1* z$)6A&Aw&o-5CR0e 0: - return self.resolve, remaining_paths - return super()._find_handler(remaining_paths) + auth = Auth() + urls = Urls() @template('index.mak') def get(self): @@ -67,11 +32,20 @@ def get(self): @template('successfully.mak') def post(self): - return dict(hash_id=db.store(context.form.get('url'))) + url = context.form.get('url') + if not url.startswith('http'): + url = f'http://{url}' + + url_exist = DBSession.query(Url).filter_by(url=url).one_or_none() + + if url_exist is None: + url_exist = Url(url=url) + DBSession.add(url_exist) + DBSession.commit() + + hash_id = hashids.encode(url_exist.id) - @text - def resolve(self, hexstring): - raise HttpFound(db.resolve(hexstring)) + return dict(hash_id=hash_id) if __name__ == '__main__': diff --git a/urlshortener/controllers/urls.py b/urlshortener/controllers/urls.py new file mode 100644 index 0000000..3fd05ee --- /dev/null +++ b/urlshortener/controllers/urls.py @@ -0,0 +1,24 @@ +from nanohttp import RestController, HttpBadRequest, HttpNotFound, HttpFound, \ + text +from restfulpy.orm import DBSession +from hashids import Hashids + +from urlshortener.models.urls import Url + +hashids = Hashids(salt="url shortener") + + +class Urls(RestController): + + @text + def get(self, hash_id): + try: + db_id, = hashids.decode(hash_id) + except ValueError: + raise HttpBadRequest() + + url = DBSession.query(Url).filter_by(id=db_id).one_or_none() + if url is None: + raise HttpNotFound() + + raise HttpFound(url.url) diff --git a/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc b/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc old mode 100755 new mode 100644 index e72982000682a4351c7ae42fb8c293d777098317..b868473a217d5a01baa3ffb23abeced22f969988 GIT binary patch delta 156 zcmX@bxr2+-n3tDpizIJ!+eFT(+)tL+<+>fd<``1tHrb2Wc;cN-#YD5qGzN=?ZQt^uDqXB+)Qgi0Iz;*z5LymUJo{Q_jsl+3cp7noX& zZgIuO`^E#U%SkPQu)&rW7jXc64iP9X$}CAOTFFo(1{C@g1PL8GISC+-fsu=m35ast zOHzwgG873!$MS&`d Ogi#5R$)2qGj6wi1l0Jw4 diff --git a/urlshortener/makomodules/index.mak.py b/urlshortener/makomodules/index.mak.py old mode 100755 new mode 100644 index e9bc1ea..4f85b04 --- a/urlshortener/makomodules/index.mak.py +++ b/urlshortener/makomodules/index.mak.py @@ -5,7 +5,7 @@ __M_dict_builtin = dict __M_locals_builtin = locals _magic_number = 10 -_modified_time = 1527326764.7707543 +_modified_time = 1527585204.9788141 _enable_loop = True _template_filename = '/home/mohammad/workspace/urlshortener/urlshortener/templates/index.mak' _template_uri = 'index.mak' @@ -18,7 +18,7 @@ def render_body(context,**pageargs): try: __M_locals = __M_dict_builtin(pageargs=pageargs) __M_writer = context.writer() - __M_writer('\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n \n
\n\n\n') + __M_writer('\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n \n
\n \n \n
\n\n\n') return '' finally: context.caller_stack._pop_frame() diff --git a/urlshortener/makomodules/successfully.mak.py b/urlshortener/makomodules/successfully.mak.py old mode 100755 new mode 100644 index 4b62c37..2843e33 --- a/urlshortener/makomodules/successfully.mak.py +++ b/urlshortener/makomodules/successfully.mak.py @@ -5,9 +5,9 @@ __M_dict_builtin = dict __M_locals_builtin = locals _magic_number = 10 -_modified_time = 1526736931.5179572 +_modified_time = 1527584278.3637245 _enable_loop = True -_template_filename = '/home/mohammad/workspace/urlshortener/templates/successfully.mak' +_template_filename = '/home/mohammad/workspace/urlshortener/urlshortener/templates/successfully.mak' _template_uri = 'successfully.mak' _source_encoding = 'ascii' _exports = [] @@ -19,9 +19,11 @@ def render_body(context,**pageargs): __M_locals = __M_dict_builtin(pageargs=pageargs) hash_id = context.get('hash_id', UNDEFINED) __M_writer = context.writer() - __M_writer('\nUrl shortener\n\n
\n

Successfully

\n

Shortener url: http://localhost:8080/') + __M_writer('\nUrl shortener\n\n

\n \n\n\n') return '' finally: context.caller_stack._pop_frame() @@ -29,6 +31,6 @@ def render_body(context,**pageargs): """ __M_BEGIN_METADATA -{"filename": "/home/mohammad/workspace/urlshortener/templates/successfully.mak", "uri": "successfully.mak", "source_encoding": "ascii", "line_map": {"16": 0, "22": 1, "23": 6, "24": 6, "30": 24}} +{"filename": "/home/mohammad/workspace/urlshortener/urlshortener/templates/successfully.mak", "uri": "successfully.mak", "source_encoding": "ascii", "line_map": {"16": 0, "22": 1, "23": 7, "24": 7, "25": 8, "26": 8, "32": 26}} __M_END_METADATA """ diff --git a/urlshortener/templates/index.mak b/urlshortener/templates/index.mak index 50133ee..a9118b6 100755 --- a/urlshortener/templates/index.mak +++ b/urlshortener/templates/index.mak @@ -7,6 +7,9 @@ +
+ +
diff --git a/urlshortener/templates/successfully.mak b/urlshortener/templates/successfully.mak index 8f8c22a..d66605b 100755 --- a/urlshortener/templates/successfully.mak +++ b/urlshortener/templates/successfully.mak @@ -3,7 +3,10 @@

Successfully

-

Shortener url: http://localhost:8080/${hash_id}

+

Shortener + + http://localhost:8080/urls/${hash_id} +

diff --git a/urlshortener/tests/test_auth.py b/urlshortener/tests/test_auth.py new file mode 100644 index 0000000..ec7da56 --- /dev/null +++ b/urlshortener/tests/test_auth.py @@ -0,0 +1,32 @@ +import unittest + +from bddrest.authoring import then, response + +from urlshortener.tests.helpers import BDDTestClass + + +class AuthTestCase(BDDTestClass): + + def test_auth(self): + + call = dict( + title='POST', + description='', + url='/auth', + verb='POST', + ) + with self.given(**call): + then(response.status_code == 200) + + call = dict( + title='GET', + description='', + url='/auth?state=yZlnAejV1H0cd4cJ8jelnavTsvePuf&code=4/AAACM08NCbCv97ix1FwQK4GaauRUMSG9li3ZNCTRzretKoV_dkQ9roMsL-iYc0crHAQIB9KE9eQqfMH-nS6LxgU&scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/plus.me#', + verb='GET', + ) + with self.given(**call): + then(response.status_code == 200) + + +if __name__ == '__main__': # pragma: no cover + unittest.main() diff --git a/urlshortener/tests/test_root.py b/urlshortener/tests/test_root.py index d16e7a3..b663f34 100644 --- a/urlshortener/tests/test_root.py +++ b/urlshortener/tests/test_root.py @@ -29,33 +29,6 @@ def test_root(self): with self.given(**call): then(response.status_code == 200) - call = dict( - title='GET', - description='', - url='/zK', - verb='GET', - ) - with self.given(**call): - then(response.status_code == 302) - - call = dict( - title='GET', - description='', - url='/lP5', - verb='GET', - ) - with self.given(**call): - then(response.status_code == 400) - - call = dict( - title='GET', - description='', - url='/lP', - verb='GET', - ) - with self.given(**call): - then(response.status_code == 404) - if __name__ == '__main__': # pragma: no cover unittest.main() diff --git a/urlshortener/tests/test_urls.py b/urlshortener/tests/test_urls.py new file mode 100644 index 0000000..d133ba1 --- /dev/null +++ b/urlshortener/tests/test_urls.py @@ -0,0 +1,41 @@ +import unittest + +from bddrest.authoring import then, response + +from urlshortener.tests.helpers import BDDTestClass + + +class UrlsTestCase(BDDTestClass): + + def test_urls(self): + + call = dict( + title='GET', + description='', + url='/urls/zK', + verb='GET', + ) + with self.given(**call): + then(response.status_code == 302) + + call = dict( + title='GET', + description='', + url='/urls/lP5', + verb='GET', + ) + with self.given(**call): + then(response.status_code == 400) + + call = dict( + title='GET', + description='', + url='/urls/lP', + verb='GET', + ) + with self.given(**call): + then(response.status_code == 404) + + +if __name__ == '__main__': # pragma: no cover + unittest.main() From c8d7efaf2babda8051cc1259155bf9f4c8835ffd Mon Sep 17 00:00:00 2001 From: mohammad Date: Sun, 3 Jun 2018 11:01:56 +0430 Subject: [PATCH 12/16] Add oauth google api --- .idea/misc.xml | 2 +- .idea/modules.xml | 3 + .idea/urlshortener.iml | 5 +- .idea/vcs.xml | 2 + .idea/workspace.xml | 550 +++++++++--------- .ropeproject/globalnames | Bin 2503 -> 2734 bytes data/logs/urlshortener-error.log | 190 ++++++ data/logs/urlshortener.log | 190 ++++++ urlshortener.egg-info/SOURCES.txt | 5 +- .../__pycache__/auth.cpython-36.pyc | Bin 1943 -> 1767 bytes urlshortener/controllers/auth.py | 59 +- urlshortener/mockupserver/__init__.py | 0 urlshortener/mockupserver/simple.py | 0 urlshortener/tests/helpers.py | 29 + urlshortener/tests/test_auth.py | 15 +- 15 files changed, 721 insertions(+), 329 deletions(-) create mode 100644 urlshortener/mockupserver/__init__.py create mode 100644 urlshortener/mockupserver/simple.py diff --git a/.idea/misc.xml b/.idea/misc.xml index 223e715..24565d1 100755 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index fb066f6..4df3f7d 100755 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,10 @@ + + + \ No newline at end of file diff --git a/.idea/urlshortener.iml b/.idea/urlshortener.iml index 6ee59f4..e1e1cfc 100755 --- a/.idea/urlshortener.iml +++ b/.idea/urlshortener.iml @@ -2,8 +2,11 @@ - + + + + - - + - + - + + - + @@ -535,24 +546,24 @@ - file://$PROJECT_DIR$/urlshortener/controllers/auth.py - 57 - file://$PROJECT_DIR$/urlshortener/controllers/auth.py - 61 - - file://$PROJECT_DIR$/urlshortener/controllers/root.py - 34 - - file://$PROJECT_DIR$/urlshortener/controllers/auth.py - 52 - @@ -562,29 +573,31 @@ - - - - - - - - - - + + + response + Python + EXPRESSION + + + res + Python + EXPRESSION + context.query_string Python @@ -625,11 +638,6 @@ Python EXPRESSION - - contexts.context.query_string - Python - EXPRESSION - @@ -650,337 +658,313 @@ - - - - - - - - + - - + + - + - - + + - + + - - + + - + + - - + + - + - - + + - + - - + + - + - - + + - + - - - + - + - - - + - + - - + + - + - - + + - + - - + + - + - - + + - + + - - - + - + - - + + - + - - + + - + - - + + - + - - + + - - + - - + + - + - - + + - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - + + - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - + + - + - - + + - + - - - + - + - - + + - - - - - - - + + - + + + + - + + + - + - - + + - + - - + + - + - - + + - + + + + - - + + - + - - + + - + - - + + - - + + - + - - + + - + - - - + diff --git a/.ropeproject/globalnames b/.ropeproject/globalnames index f825ee9475d493608dee206bcf239373c33a97e3..f6a52bfeef0591c47453e2af837cbaa91f0ad56c 100755 GIT binary patch delta 589 zcmZvYNlz3(6vrn7=st)fnlWZ1Fd>uJr-|OZ;LJ%hECEuNN~dP}nd(?h&#S6V%($?~ z4zk#Svbrx^2;YLw<2SInNSYz>_FlbL|M&a<&u^aQ&t5opom?)*nc`ufutmB|H`ENL z?&C|+Y3lJP()bEUF&T6E9&r#&kP2T@eB;?U2MIV$y3MMHqGxdvXGpJUBs2n$zJ}*b z!8G73am{Pi&Lt1rfzG!S=MͮWQjl51w+VYNB|N>>C^3YQqUZO-1A#$}2tq{qx- zDSX8vsi6T9S1GP}R#=2e`(}viq}|WEOU8|M#?AjSZe3;ECLQKtP{Y!D8%re$ppJ>H z>$d)I8PQJi*S&Xrm*Pi{5A(oxwi(jvE$1$#ZMIXtjRP}>yjzJeU^+k{RP9W z@POi>$6Ho)GJQC@qQYX$@tERgt1@J|Oy!GJ8MPZaLIY_sHj-w$&F3g$g;UFiirqeJmDysSz8`E^i!jf2ZoPZj@Qes6*Od@a>JfDtCIyMxK-~lz2 z2X~z9vP&)Tqs52YOqbgM?6}+xfI1?gC!;4Oow70U6^@HpJvMq~(mCswvQ5aXfgfaT zALv3@dUEE{q$@Tksj|l{A001%5_oiN(v6{5{QdWz{b-A2Z9F4weR?wK*-$0PUS4`yeC=uR UP2ITe@vKt{Jco06<2#hozb(FiqW}N^ diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log index 26e8a03..2a4a059 100755 --- a/data/logs/urlshortener-error.log +++ b/data/logs/urlshortener-error.log @@ -9445,3 +9445,193 @@ Traceback (most recent call last): File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build "name: %s version: %s" % (serviceName, version)) googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-06-02 10:40:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in get + req = Request('https://www.googleapis.com/oauth2/v1/userinfo', +NameError: name 'Request' is not defined +2018-06-02 10:43:14 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 10:46:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 10:47:47 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 128, in encode_response + return buffer.encode(self.response_encoding) +AttributeError: 'bytes' object has no attribute 'encode' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 117, in _response + yield ctx.encode_response(chunk) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 132, in encode_response + raise TypeError('The returned response should has the `encode` attribute, such as `str`.') +TypeError: The returned response should has the `encode` attribute, such as `str`. +2018-06-02 11:05:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 11:15:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 11:16:00 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 128, in encode_response + return buffer.encode(self.response_encoding) +AttributeError: 'bytes' object has no attribute 'encode' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 117, in _response + yield ctx.encode_response(chunk) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 132, in encode_response + raise TypeError('The returned response should has the `encode` attribute, such as `str`.') +TypeError: The returned response should has the `encode` attribute, such as `str`. +2018-06-02 11:26:28 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 128, in encode_response + return buffer.encode(self.response_encoding) +AttributeError: 'bytes' object has no attribute 'encode' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 117, in _response + yield ctx.encode_response(chunk) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 132, in encode_response + raise TypeError('The returned response should has the `encode` attribute, such as `str`.') +TypeError: The returned response should has the `encode` attribute, such as `str`. +2018-06-02 11:30:47 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in post + raise HttpFound(authorization_urllll) +NameError: name 'authorization_urllll' is not defined +2018-06-02 15:12:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 29, in get + code=query_string_code + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Malformed auth code. +2018-06-02 15:51:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 29, in get + code=context.query_string.get('code') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Malformed auth code. diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log index 26e8a03..2a4a059 100755 --- a/data/logs/urlshortener.log +++ b/data/logs/urlshortener.log @@ -9445,3 +9445,193 @@ Traceback (most recent call last): File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/googleapiclient/discovery.py", line 233, in build "name: %s version: %s" % (serviceName, version)) googleapiclient.errors.UnknownApiNameOrVersion: name: userinfo version: v1 +2018-06-02 10:40:41 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in get + req = Request('https://www.googleapis.com/oauth2/v1/userinfo', +NameError: name 'Request' is not defined +2018-06-02 10:43:14 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 10:46:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 10:47:47 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 128, in encode_response + return buffer.encode(self.response_encoding) +AttributeError: 'bytes' object has no attribute 'encode' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 117, in _response + yield ctx.encode_response(chunk) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 132, in encode_response + raise TypeError('The returned response should has the `encode` attribute, such as `str`.') +TypeError: The returned response should has the `encode` attribute, such as `str`. +2018-06-02 11:05:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 11:15:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 56, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-02 11:16:00 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 128, in encode_response + return buffer.encode(self.response_encoding) +AttributeError: 'bytes' object has no attribute 'encode' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 117, in _response + yield ctx.encode_response(chunk) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 132, in encode_response + raise TypeError('The returned response should has the `encode` attribute, such as `str`.') +TypeError: The returned response should has the `encode` attribute, such as `str`. +2018-06-02 11:26:28 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 128, in encode_response + return buffer.encode(self.response_encoding) +AttributeError: 'bytes' object has no attribute 'encode' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 117, in _response + yield ctx.encode_response(chunk) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/contexts.py", line 132, in encode_response + raise TypeError('The returned response should has the `encode` attribute, such as `str`.') +TypeError: The returned response should has the `encode` attribute, such as `str`. +2018-06-02 11:30:47 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 56, in post + raise HttpFound(authorization_urllll) +NameError: name 'authorization_urllll' is not defined +2018-06-02 15:12:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 29, in get + code=query_string_code + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Malformed auth code. +2018-06-02 15:51:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 29, in get + code=context.query_string.get('code') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Malformed auth code. diff --git a/urlshortener.egg-info/SOURCES.txt b/urlshortener.egg-info/SOURCES.txt index 77577d6..894715a 100644 --- a/urlshortener.egg-info/SOURCES.txt +++ b/urlshortener.egg-info/SOURCES.txt @@ -6,10 +6,12 @@ urlshortener.egg-info/dependency_links.txt urlshortener.egg-info/entry_points.txt urlshortener.egg-info/requires.txt urlshortener.egg-info/top_level.txt +urlshortener/basedata/__init__.py urlshortener/controllers/__init__.py urlshortener/controllers/auth.py urlshortener/controllers/helpers.py urlshortener/controllers/root.py +urlshortener/controllers/urls.py urlshortener/makomodules/__init__.py urlshortener/makomodules/index.mak.py urlshortener/makomodules/successfully.mak.py @@ -18,4 +20,5 @@ urlshortener/models/urls.py urlshortener/tests/__init__.py urlshortener/tests/helpers.py urlshortener/tests/test_auth.py -urlshortener/tests/test_root.py \ No newline at end of file +urlshortener/tests/test_root.py +urlshortener/tests/test_urls.py \ No newline at end of file diff --git a/urlshortener/controllers/__pycache__/auth.cpython-36.pyc b/urlshortener/controllers/__pycache__/auth.cpython-36.pyc index f6b70f6af33b4f4b5962c1ae5c4dd7fb92070b56..dfb343f22494a03ef3e405f99d56ff24bbb1b3f5 100644 GIT binary patch literal 1767 zcmb7EOKTiQ5T1U_W1o^`MX`-BCNEg9ca?;IFd;Y?l$;cBa+(C1(RAIpr_pl&V=(g_1eF$_kR2#4uU^|8&3%O zb6D1akbxv+P?3~WG^G_w89^H@c@?H%6{S(LXJuR^X;QV)R@F}1RVVFK-L%{Ic-c$) ziYNw)s+|py;f8{YHZz4bwEl$5!GL)_(?#uLS(rMjl#jDh zJI~y7Kz;mDoiCJiK31#*(fgyRXbr-Zj`e_49T&Mw+{p5IV}4T2o2$SM4o@WaMPT?2lxQe0iyc?mVE`n1v4_EGv>GpXVEN{WJBI)h!DGCYa;oI zh-5`(Eg8P?Mc|9CC<(yYUegto!CA}vDihgS(OKvHpdf4Jy0R^U72B{icfA$gkaf5U zXZ=ku+mRjEMXLyE?4J10=71o)T;>#D8#Q}t`cUEW!4%+oHX4;W&&sK`?%C1d(cvhA zb1lC>p9SZ|#l>)<^`unUys*PuS0jxPpN)S0bhNO_6!lmS=SGi3jPybiSWw>zTr$>WbzrQU{U`o-{Ru-q8k4t^w z`7z3SW1}l^n*^e%ckh<5v6(j3*aZrjOJNrR(z==J#svMiU=zoCzcnW@HtY=1@`{XTHX%BgN zjooj7`2eE-Iv!1RrAC#WW>uBR(S+ z1BQpdb25m1A_U%z zLin~2m6nSV^{x=-i>%ywOb7nbw9+J~eS!jMazkKZ(*=RcV#^ZRebiV6dp_27h!?M+ z7{*XwNZN;k!5j^Nl6V>4pmS1ZwZ?uKy!5tt5rJlKnu5~%|22|BoX7@TJQBw~L9t~21g literal 1943 zcmbVMOK;;g5SFNib1w7IwK{m(*k>_1dfKB(UAP+oB6ogZT<1{_IJNVj`N$d z@r0m1hoOG~!5!}APT^9wAe0my^;}#dxnBe{C_)+*4caIo8Wm02tZZK1D%!MN>3-g! zUGVqwExHZgAm1r^w0C3MrMs1_Py51!*MmXC-rD8int*Jq36Iu<-V@u?{pnlN196Wx z$1ZPO6S~jaVxQd?`_n_-;a$FUO};1ekUsd*;oE%YwZnHru=eOf?!R;fz2D(3&cL(& zRA!}Z@Jy9SA#5W#)3d}(27%rBMriXwmPW}u7s~oZ{9tVJD`RFSa$a&9rC@|LZ5ub* zz_tCaznGiJ@wejarBD|_o#gWJ6xM^Yd6x49iDMg`C0g*rB#VBUXQDJri&P1t<>h5OmU5hnWR~eTmBlcD*u%LNDl11ao+&xXaskmpoywWei$nYue$8c? zp*ymrcgn(p$Pbxb{{)50^fRmj1NK8%rR@HE|u7wN}A0 z;Ldqd<)+P>yals1_=l#mcHm5%QyXZL7yu%bT)+ge`ya3q)rA|VK8QB~zxd=036+@9 zyLn@)byXno>`EO%Fx*2w z2H}v7i?2^2m%tm55Onx@VH9~=-XcP7$AIeJ{Kg9LVO0En8x-U*)(7{n9j%brWC?8l z5o!mx=%1=B@KW0#21MU8jg;!mnwp82#rD)8 Date: Sun, 3 Jun 2018 16:55:28 +0430 Subject: [PATCH 13/16] Add muckup server --- .idea/workspace.xml | 485 +++++++++--------- urlshortener/__init__.py | 6 +- .../__pycache__/auth.cpython-36.pyc | Bin 1767 -> 1767 bytes urlshortener/controllers/auth.py | 27 +- urlshortener/mockupserver/__init__.py | 0 urlshortener/mockupserver/simple.py | 0 urlshortener/tests/helpers.py | 24 - urlshortener/tests/test_auth.py | 72 ++- 8 files changed, 302 insertions(+), 312 deletions(-) delete mode 100644 urlshortener/mockupserver/__init__.py delete mode 100644 urlshortener/mockupserver/simple.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 683412b..5048af4 100755 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,18 +2,11 @@ - - - - - - - - - - + + + @@ -32,7 +25,7 @@ - + @@ -40,18 +33,18 @@ - + - + - + - + @@ -71,79 +64,72 @@ - @@ -393,7 +380,7 @@ @@ -468,34 +455,34 @@ - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - + @@ -516,24 +503,24 @@ - + - + - + + - - + @@ -546,24 +533,19 @@ - file://$PROJECT_DIR$/urlshortener/controllers/root.py - 34 - - - file://$PROJECT_DIR$/urlshortener/controllers/auth.py - 54 - file://$PROJECT_DIR$/urlshortener/tests/test_auth.py - 16 - file://$PROJECT_DIR$/urlshortener/tests/test_auth.py - 30 - @@ -573,7 +555,7 @@ - @@ -658,313 +640,322 @@ - + - - + + - + - + - - + - - + + - - + - - + + - + - - + + - + - - + + - + - - + + - + - + + + - + - + + + - + - - + + - + - - + + - + - - + + - + - - + + - - + - + + + - + - - + + - + - - - + - + - - - + - + - - + + - + - - - + - + - - - + - + - - + + - + - - - + - + + + + + + + + + + + + + + + + - - + + - + - + - - - + - - - - + - - + + - + - - + + - + - - + + - + + + - - + + - + - - + + - - + + + + + + - + - - + + - + - + - + - - + + - - - - - + + + + + + - + - - + + - - + + - + - - + + - + - - + + - - - - + - - + + - + - - + + - - + + - + - - + + - - + + - + - + + + diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py index c08001f..bd866c1 100755 --- a/urlshortener/__init__.py +++ b/urlshortener/__init__.py @@ -17,10 +17,10 @@ class Application(BaseApplication): """ - def __init__(self): + def __init__(self, application_name='urlshortener', root=Root()): super().__init__( - 'urlshortener', - root=Root(), + application_name, + root=root, root_path=join(dirname(__file__), '..'), version=__version__, ) diff --git a/urlshortener/controllers/__pycache__/auth.cpython-36.pyc b/urlshortener/controllers/__pycache__/auth.cpython-36.pyc index dfb343f22494a03ef3e405f99d56ff24bbb1b3f5..82e6c9cbead5dd31f65077a7e7b2f23323d7dac1 100644 GIT binary patch delta 46 zcmaFP`<$1{n3tE!twAVy4%V7ZO%_fz4n`(ME=B>S%{DB_jEp*y7qB)n%1u^bI}8B! C+zLhj diff --git a/urlshortener/controllers/auth.py b/urlshortener/controllers/auth.py index 13f4805..e70594f 100644 --- a/urlshortener/controllers/auth.py +++ b/urlshortener/controllers/auth.py @@ -2,7 +2,7 @@ from urllib.request import Request, urlopen -from nanohttp import RestController, text, HttpFound, context, json +from nanohttp import RestController, text, HttpFound, context, json, settings import google_auth_oauthlib.flow client_secret_file = join(abspath(join(dirname(__file__), '..')), @@ -17,37 +17,32 @@ def get(self): flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file( client_secret_file, scopes=context.query_string.get('scope'), - state=context.query_string.get('state') + state=context.query_string.get('state'), + redirect_uri=settings.auth_url ) - flow.redirect_uri = 'http://localhost:8080/auth' flow.fetch_token( - authorization_response= - 'https://www.googleapis.com/oauth2/v1/userinfo.profile', - code=context.query_string.get('code') + authorization_response=settings.oauth_scope, + code=context.query_string.get('code'), ) - credentials = flow.credentials - - if credentials is not None: - headers = {'Authorization': 'OAuth ' + credentials.token} - req = Request('https://www.googleapis.com/oauth2/v1/userinfo', - None, headers) + if flow.credentials is not None: + headers = {'Authorization': 'OAuth ' + flow.credentials.token} + req = Request(settings.oauth_url_api, None, headers) response = urlopen(req) - json_response = response.read().decode("utf-8") - return json_response + return response.read().decode("utf-8") @text def post(self): flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file( client_secret_file, - scopes=['https://www.googleapis.com/auth/userinfo.profile'] + scopes=[settings.oauth_scope], + redirect_uri=settings.auth_url ) - flow.redirect_uri = 'http://localhost:8080/auth' authorization_url, state = flow.authorization_url( access_type='offline', include_granted_scopes='true') diff --git a/urlshortener/mockupserver/__init__.py b/urlshortener/mockupserver/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/urlshortener/mockupserver/simple.py b/urlshortener/mockupserver/simple.py deleted file mode 100644 index e69de29..0000000 diff --git a/urlshortener/tests/helpers.py b/urlshortener/tests/helpers.py index 7450c7d..ea82fbb 100755 --- a/urlshortener/tests/helpers.py +++ b/urlshortener/tests/helpers.py @@ -33,27 +33,3 @@ def given(self, *args, **kwargs): headers = kwargs.setdefault('headers', []) headers.append(('AUTHORIZATION', self.login_token)) return given(self.application, *args, **kwargs) - - -from restfulpy.application import Application - - -# noinspection PyAbstractClass -class MockupApplication(Application): - builtin_configuration = ''' - db: - test_url: postgresql://postgres:postgres@localhost/urlshortener_test - administrative_url: postgresql://postgres:postgres@localhost/postgres - logging: - loggers: - default: - level: critical - ''' - - def configure(self, files=None, context=None, **kwargs): - _context = dict( - process_name='restfulpy_unittests' - ) - if context: - _context.update(context) - super().configure(files=files, context=_context, **kwargs) diff --git a/urlshortener/tests/test_auth.py b/urlshortener/tests/test_auth.py index 49fb79b..3c57cc7 100644 --- a/urlshortener/tests/test_auth.py +++ b/urlshortener/tests/test_auth.py @@ -1,31 +1,59 @@ +import unittest +from contextlib import contextmanager + from bddrest.authoring import then, response +from restfulpy.testing.mockup import http_server +from restfulpy.tests.helpers import MockupApplication +from nanohttp import RestController, settings, text from urlshortener.tests.helpers import BDDTestClass +class OAuthMockupServer(RestController): + @text + def get(self): + return 'code' + + +@contextmanager +def oauth_mockup_server(root_controller): + app = MockupApplication('mockup-oauth', root_controller) + with http_server(app) as (server, url): + settings.merge(f''' + tokenizer: + url: {url} + ''') + yield app + + class AuthTestCase(BDDTestClass): def test_auth(self): + with oauth_mockup_server(OAuthMockupServer): + + call = dict( + title='POST', + description='', + url='/auth', + verb='POST', + ) + with self.given(**call): + then(response.status_code == 302) + + call = dict( + title='GET', + description='', + url='/auth', + verb='GET', + query={ + 'state': 'sdfsd', + 'code': 'sdfs', + 'scope': 'asd' + } + ) + with self.given(**call): + then(response.status_code == 200) + - call = dict( - title='POST', - description='', - url='/auth', - verb='POST', - ) - with self.given(**call): - then(response.status_code == 302) - - call = dict( - title='GET', - description='', - url='/auth', - verb='GET', - query={ - 'state': 'sdfsd', - 'code': 'sdfs', - 'scope': 'asd' - } - ) - with self.given(**call): - then(response.status_code == 200) +if __name__ == '__main__': # pragma: no cover + unittest.main() From 22a7de791a566979bd4e135d87c0f93f9278f1d2 Mon Sep 17 00:00:00 2001 From: mohammad Date: Mon, 11 Jun 2018 17:17:19 +0430 Subject: [PATCH 14/16] Add member to database --- .idea/modules.xml | 1 + .idea/urlshortener.iml | 1 + .idea/vcs.xml | 1 + .idea/workspace.xml | 637 ++++++---- data/logs/urlshortener-error.log | 1112 +++++++++++++++++ data/logs/urlshortener.log | 1112 +++++++++++++++++ setup.py | 5 +- urlshortener/__init__.py | 4 +- .../__pycache__/__init__.cpython-36.pyc | Bin 1400 -> 1491 bytes .../__pycache__/auth.cpython-36.pyc | Bin 1767 -> 2093 bytes .../__pycache__/root.cpython-36.pyc | Bin 1851 -> 1851 bytes urlshortener/controllers/auth.py | 60 +- .../models/__pycache__/member.cpython-36.pyc | Bin 0 -> 642 bytes .../models/__pycache__/urls.cpython-36.pyc | Bin 558 -> 539 bytes urlshortener/models/member.py | 13 + urlshortener/models/urls.py | 2 +- urlshortener/tests/helpers.py | 47 + urlshortener/tests/test_auth.py | 113 +- 18 files changed, 2814 insertions(+), 294 deletions(-) create mode 100644 urlshortener/models/__pycache__/member.cpython-36.pyc create mode 100644 urlshortener/models/member.py diff --git a/.idea/modules.xml b/.idea/modules.xml index 4df3f7d..63a7dbd 100755 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,7 @@ + diff --git a/.idea/urlshortener.iml b/.idea/urlshortener.iml index e1e1cfc..83ffe2d 100755 --- a/.idea/urlshortener.iml +++ b/.idea/urlshortener.iml @@ -7,6 +7,7 @@ + - + - + - + @@ -380,7 +431,7 @@ - + - - - @@ -427,17 +464,17 @@ - - - + + + - - + + + - @@ -455,34 +492,34 @@ - - + + - + - + - - + + - - + + - + - - + + - - + + - + - + @@ -499,28 +536,29 @@ + - + + - + + - - - + + - - + @@ -533,19 +571,44 @@ - file://$PROJECT_DIR$/urlshortener/tests/test_auth.py - 14 - + + file://$USER_HOME$/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py + 554 + + + file://$USER_HOME$/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py + 217 + + + file://$USER_HOME$/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py + 358 + + + file://$PROJECT_DIR$/../restfulpy/restfulpy/authentication.py + 133 + - file://$PROJECT_DIR$/urlshortener/tests/test_auth.py - 19 - - file://$PROJECT_DIR$/urlshortener/tests/test_auth.py - 33 - + + file://$PROJECT_DIR$/urlshortener/controllers/auth.py + 31 + @@ -555,406 +618,462 @@ - - + - - + + + + import json json.loads(r.text) + Python + CODE_FRAGMENT + + - response + context.environ Python EXPRESSION - res + context.path Python EXPRESSION - context.query_string + context.request_scheme Python EXPRESSION - context.query_string.get('state') + context.form Python EXPRESSION - context.query_string().pop() + context.application Python EXPRESSION - context + context.request_uri Python EXPRESSION - context.query_string().get('state') + context.method Python EXPRESSION - m = context.query_string + context.cookies Python EXPRESSION - context.query_string().values() + context.query_string Python EXPRESSION - query_dic + context Python EXPRESSION - DBSession.commit() + json_library.loads(response_token.text) Python EXPRESSION - response + json_library.loads(response_token.text)['access_token'] Python EXPRESSION - response.status_code + settings.oauth_url_api + Python + EXPRESSION + + + response.read().decode("utf-8") + Python + EXPRESSION + + + client_secret_data + Python + EXPRESSION + + + client_secret_data['web'] + Python + EXPRESSION + + + assert isinstance(json, object) +import json + Python + EXPRESSION + + + import json + Python + EXPRESSION + + + import json json.loads(r.text) Python EXPRESSION - + - - + + - + - - + + - + - - + + - + - - + + - + - - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - + - + + + - + - - + + - + - + + + - + - + + + - + - - + + - + - + + + - + - + + + - + - + + + - + - + + + - + - - + + - + - - + + - + - + + + - + - - + + - + - - + + - + - - + + - - - + - - + + - - + + - + - - + + - + - - + + - + + + + + + + - + - + - - + + - + - - + + - + + + + - - + + - + - - + + - + - - + + - + + + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log index 2a4a059..2a7d5c0 100755 --- a/data/logs/urlshortener-error.log +++ b/data/logs/urlshortener-error.log @@ -9635,3 +9635,1115 @@ Traceback (most recent call last): File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error raise cls(**kwargs) oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Malformed auth code. +2018-06-07 10:41:04 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 43, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:41:35 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 43, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:43:51 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:44:59 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:45:17 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:53:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:53:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:54:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.loads(json_file) +AttributeError: 'functools.partial' object has no attribute 'loads' +2018-06-07 10:55:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:58:39 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 11:14:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 11:29:32 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 47, in post + redirect_uri=settings.redirect_uri_auth + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/pymlconf/proxy.py", line 44, in __getattr__ + return getattr(object.__getattribute__(self, 'proxied_object'), key) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/pymlconf/config_nodes.py", line 138, in __getattr__ + raise ConfigKeyError(key) +pymlconf.errors.ConfigKeyError: Config key was not found: "redirect_uri_auth" +2018-06-07 11:33:06 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 50, in post + flow.client_config.auth_uri = settings.auth_uri_service +AttributeError: 'dict' object has no attribute 'auth_uri' +2018-06-07 11:43:56 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in post + include_granted_scopes='true') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 212, in authorization_url + self.client_config['auth_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 153, in authorization_url + **kwargs), state + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 86, in prepare_request_uri + redirect_uri=redirect_uri, scope=scope, state=state, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 71, in prepare_grant_uri + raise InsecureTransportError() +oauthlib.oauth2.rfc6749.errors.InsecureTransportError: (insecure_transport) OAuth 2 MUST utilize https. +2018-06-07 11:52:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in post + include_granted_scopes='true') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 212, in authorization_url + self.client_config['auth_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 153, in authorization_url + **kwargs), state + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 86, in prepare_request_uri + redirect_uri=redirect_uri, scope=scope, state=state, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 71, in prepare_grant_uri + raise InsecureTransportError() +oauthlib.oauth2.rfc6749.errors.InsecureTransportError: (insecure_transport) OAuth 2 MUST utilize https. +2018-06-07 12:30:09 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open + encode_chunked=req.has_header('Transfer-encoding')) + File "/usr/lib/python3.6/http/client.py", line 1239, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1026, in _send_output + self.send(msg) + File "/usr/lib/python3.6/http/client.py", line 964, in send + self.connect() + File "/usr/lib/python3.6/http/client.py", line 1400, in connect + server_hostname=server_hostname) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake + self._sslobj.do_handshake() +ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:833) + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open + context=self._context, check_hostname=self._check_hostname) + File "/usr/lib/python3.6/urllib/request.py", line 1320, in do_open + raise URLError(err) +urllib.error.URLError: +2018-06-07 12:42:33 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-07 12:44:24 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 12:47:58 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 12:48:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/usr/lib/python3.6/http/client.py", line 885, in _get_hostport + port = int(host[i+1:]) +ValueError: invalid literal for int() with base 10: '38937root' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1346, in http_open + return self.do_open(http.client.HTTPConnection, req) + File "/usr/lib/python3.6/urllib/request.py", line 1286, in do_open + h = http_class(host, timeout=req.timeout, **http_conn_args) + File "/usr/lib/python3.6/http/client.py", line 849, in __init__ + (self.host, self.port) = self._get_hostport(host, port) + File "/usr/lib/python3.6/http/client.py", line 890, in _get_hostport + raise InvalidURL("nonnumeric port: '%s'" % host[i+1:]) +http.client.InvalidURL: nonnumeric port: '38937root' +2018-06-07 12:49:21 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) +TypeError: object() takes no parameters +2018-06-07 12:49:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 500: Internal server error +2018-06-07 12:50:38 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 12:51:52 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 13:06:45 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 13:09:48 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 13:10:04 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-09 09:51:04 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 30, in get + data = dict(urldecode(body)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/common.py", line 136, in urldecode + raise ValueError(error % (set(query) - urlencoded, query)) +ValueError: Error trying to decode a non urlencoded string. Found invalid characters: {'client_id', 'redirect_uri', 'grant_type', 'client_secret', 'code'} in the string: '{'grant_type': 'authorization_code', 'code': '4/AAA_ieAH5x0_nAl45U03Iom6Ut2bcMV-oN8pYrnZtGUYKDpovHVmjpCbWu4zBdUYrLtb6JMguFf_E2tyxqLo_vo', 'client_id': '781215968670-qg3g1nadrm9k2rp8nrhcai73sa5o3fiq.apps.googleusercontent.com', 'redirect_uri': 'http://localhost:8080/auth', 'client_secret': 'oj5qITnaVreCDFrXYATj9BtO'}'. Please ensure the request/response body is x-www-form-urlencoded. +2018-06-09 09:55:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 32, in get + req_token = Request('', body, headers_token) + File "/usr/lib/python3.6/urllib/request.py", line 329, in __init__ + self.full_url = url + File "/usr/lib/python3.6/urllib/request.py", line 355, in full_url + self._parse() + File "/usr/lib/python3.6/urllib/request.py", line 384, in _parse + raise ValueError("unknown url type: %r" % self.full_url) +ValueError: unknown url type: '' +2018-06-09 09:56:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 34, in get + response_token = urlopen(req_token) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open + context=self._context, check_hostname=self._check_hostname) + File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open + encode_chunked=req.has_header('Transfer-encoding')) + File "/usr/lib/python3.6/http/client.py", line 1239, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1064, in _send_output + + b'\r\n' +TypeError: can't concat str to bytes +2018-06-09 09:58:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 34, in get + response_token = urlopen(req_token) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open + context=self._context, check_hostname=self._check_hostname) + File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open + encode_chunked=req.has_header('Transfer-encoding')) + File "/usr/lib/python3.6/http/client.py", line 1239, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1064, in _send_output + + b'\r\n' +TypeError: can't concat str to bytes +2018-06-09 10:31:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 42, in get + code=context.query_string.get('code'), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Code was already redeemed. +2018-06-09 12:19:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 33, in get + body_token['client_id'] = client_secret_data['client_id'] +KeyError: 'client_id' +2018-06-09 13:41:02 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 13:52:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 13:55:38 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 40, in get + return response_profile.read().decode("utf-8") +AttributeError: 'Response' object has no attribute 'read' +2018-06-09 13:56:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 40, in get + return response_profile.read().decode("utf-8") +AttributeError: 'Response' object has no attribute 'read' +2018-06-09 14:24:57 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 14:30:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 15:12:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 37, in get + headers=headers + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 72, in get + return request('get', url, params=params, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 58, in request + return session.request(method=method, url=url, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 494, in request + prep = self.prepare_request(req) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 437, in prepare_request + hooks=merge_hooks(request.hooks, self.hooks), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 305, in prepare + self.prepare_url(url, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 379, in prepare_url + raise MissingSchema(error) +requests.exceptions.MissingSchema: Invalid URL 'local': No schema supplied. Perhaps you meant http://local? +2018-06-09 16:26:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 37, in get + oath='OAuth' + h + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 72, in get + return request('get', url, params=params, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 58, in request + return session.request(method=method, url=url, **kwargs) +TypeError: request() got an unexpected keyword argument 'oath' +2018-06-10 12:49:27 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 30, in get + h = json_library.loads(response_token.text)['access_token'] +KeyError: 'access_token' +2018-06-10 14:31:58 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() +AttributeError: 'NoneType' object has no attribute 'authenticate_request' +2018-06-10 16:35:53 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:36:37 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:40:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:40:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:41:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:42:49 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:43:33 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:45:58 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 11:17:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:13:39 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:15:58 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:19:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:25:16 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:28:10 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:31:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 14:49:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['google_access_token'] +KeyError: 'google_access_token' +2018-06-11 15:09:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['google_access_token'] +KeyError: 'google_access_token' +2018-06-11 15:10:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['access_token'] +KeyError: 'google_access_token' +2018-06-11 15:10:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['access_token'] +KeyError: 'access_token' diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log index 2a4a059..2a7d5c0 100755 --- a/data/logs/urlshortener.log +++ b/data/logs/urlshortener.log @@ -9635,3 +9635,1115 @@ Traceback (most recent call last): File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error raise cls(**kwargs) oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Malformed auth code. +2018-06-07 10:41:04 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 43, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:41:35 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 43, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:43:51 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:44:59 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:45:17 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:53:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:53:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:54:29 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.loads(json_file) +AttributeError: 'functools.partial' object has no attribute 'loads' +2018-06-07 10:55:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 10:58:39 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 11:14:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 45, in post + client_config = json.load(json_file) +AttributeError: 'functools.partial' object has no attribute 'load' +2018-06-07 11:29:32 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 47, in post + redirect_uri=settings.redirect_uri_auth + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/pymlconf/proxy.py", line 44, in __getattr__ + return getattr(object.__getattribute__(self, 'proxied_object'), key) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/pymlconf/config_nodes.py", line 138, in __getattr__ + raise ConfigKeyError(key) +pymlconf.errors.ConfigKeyError: Config key was not found: "redirect_uri_auth" +2018-06-07 11:33:06 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 50, in post + flow.client_config.auth_uri = settings.auth_uri_service +AttributeError: 'dict' object has no attribute 'auth_uri' +2018-06-07 11:43:56 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in post + include_granted_scopes='true') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 212, in authorization_url + self.client_config['auth_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 153, in authorization_url + **kwargs), state + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 86, in prepare_request_uri + redirect_uri=redirect_uri, scope=scope, state=state, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 71, in prepare_grant_uri + raise InsecureTransportError() +oauthlib.oauth2.rfc6749.errors.InsecureTransportError: (insecure_transport) OAuth 2 MUST utilize https. +2018-06-07 11:52:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in post + include_granted_scopes='true') + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 212, in authorization_url + self.client_config['auth_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 153, in authorization_url + **kwargs), state + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 86, in prepare_request_uri + redirect_uri=redirect_uri, scope=scope, state=state, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 71, in prepare_grant_uri + raise InsecureTransportError() +oauthlib.oauth2.rfc6749.errors.InsecureTransportError: (insecure_transport) OAuth 2 MUST utilize https. +2018-06-07 12:30:09 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open + encode_chunked=req.has_header('Transfer-encoding')) + File "/usr/lib/python3.6/http/client.py", line 1239, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1026, in _send_output + self.send(msg) + File "/usr/lib/python3.6/http/client.py", line 964, in send + self.connect() + File "/usr/lib/python3.6/http/client.py", line 1400, in connect + server_hostname=server_hostname) + File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket + _context=self, _session=session) + File "/usr/lib/python3.6/ssl.py", line 814, in __init__ + self.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake + self._sslobj.do_handshake() + File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake + self._sslobj.do_handshake() +ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:833) + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open + context=self._context, check_hostname=self._check_hostname) + File "/usr/lib/python3.6/urllib/request.py", line 1320, in do_open + raise URLError(err) +urllib.error.URLError: +2018-06-07 12:42:33 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-07 12:44:24 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 12:47:58 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 12:48:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/usr/lib/python3.6/http/client.py", line 885, in _get_hostport + port = int(host[i+1:]) +ValueError: invalid literal for int() with base 10: '38937root' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1346, in http_open + return self.do_open(http.client.HTTPConnection, req) + File "/usr/lib/python3.6/urllib/request.py", line 1286, in do_open + h = http_class(host, timeout=req.timeout, **http_conn_args) + File "/usr/lib/python3.6/http/client.py", line 849, in __init__ + (self.host, self.port) = self._get_hostport(host, port) + File "/usr/lib/python3.6/http/client.py", line 890, in _get_hostport + raise InvalidURL("nonnumeric port: '%s'" % host[i+1:]) +http.client.InvalidURL: nonnumeric port: '38937root' +2018-06-07 12:49:21 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) +TypeError: object() takes no parameters +2018-06-07 12:49:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 46, in post + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 500: Internal server error +2018-06-07 12:50:38 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 12:51:52 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 13:06:45 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 13:09:48 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-07 13:10:04 - main - ERROR - Exception while serving the response. +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 116, in _response + for chunk in response_iterable: +TypeError: 'Root' object is not iterable +2018-06-09 09:51:04 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 30, in get + data = dict(urldecode(body)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/common.py", line 136, in urldecode + raise ValueError(error % (set(query) - urlencoded, query)) +ValueError: Error trying to decode a non urlencoded string. Found invalid characters: {'client_id', 'redirect_uri', 'grant_type', 'client_secret', 'code'} in the string: '{'grant_type': 'authorization_code', 'code': '4/AAA_ieAH5x0_nAl45U03Iom6Ut2bcMV-oN8pYrnZtGUYKDpovHVmjpCbWu4zBdUYrLtb6JMguFf_E2tyxqLo_vo', 'client_id': '781215968670-qg3g1nadrm9k2rp8nrhcai73sa5o3fiq.apps.googleusercontent.com', 'redirect_uri': 'http://localhost:8080/auth', 'client_secret': 'oj5qITnaVreCDFrXYATj9BtO'}'. Please ensure the request/response body is x-www-form-urlencoded. +2018-06-09 09:55:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 32, in get + req_token = Request('', body, headers_token) + File "/usr/lib/python3.6/urllib/request.py", line 329, in __init__ + self.full_url = url + File "/usr/lib/python3.6/urllib/request.py", line 355, in full_url + self._parse() + File "/usr/lib/python3.6/urllib/request.py", line 384, in _parse + raise ValueError("unknown url type: %r" % self.full_url) +ValueError: unknown url type: '' +2018-06-09 09:56:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 34, in get + response_token = urlopen(req_token) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open + context=self._context, check_hostname=self._check_hostname) + File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open + encode_chunked=req.has_header('Transfer-encoding')) + File "/usr/lib/python3.6/http/client.py", line 1239, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1064, in _send_output + + b'\r\n' +TypeError: can't concat str to bytes +2018-06-09 09:58:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 34, in get + response_token = urlopen(req_token) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 526, in open + response = self._open(req, data) + File "/usr/lib/python3.6/urllib/request.py", line 544, in _open + '_open', req) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open + context=self._context, check_hostname=self._check_hostname) + File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open + encode_chunked=req.has_header('Transfer-encoding')) + File "/usr/lib/python3.6/http/client.py", line 1239, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/usr/lib/python3.6/http/client.py", line 1064, in _send_output + + b'\r\n' +TypeError: can't concat str to bytes +2018-06-09 10:31:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 42, in get + code=context.query_string.get('code'), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 241, in fetch_token + self.client_config['token_uri'], **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token + self._client.parse_request_body_response(r.text, scope=self.scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response + self.token = parse_token_response(body, scope=scope) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response + validate_token_parameters(params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 386, in validate_token_parameters + raise_from_error(params.get('error'), params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 415, in raise_from_error + raise cls(**kwargs) +oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Code was already redeemed. +2018-06-09 12:19:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 33, in get + body_token['client_id'] = client_secret_data['client_id'] +KeyError: 'client_id' +2018-06-09 13:41:02 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 13:52:54 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 13:55:38 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 40, in get + return response_profile.read().decode("utf-8") +AttributeError: 'Response' object has no attribute 'read' +2018-06-09 13:56:18 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 40, in get + return response_profile.read().decode("utf-8") +AttributeError: 'Response' object has no attribute 'read' +2018-06-09 14:24:57 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 14:30:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 36, in get + response = urlopen(req) + File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen + return opener.open(url, data, timeout) + File "/usr/lib/python3.6/urllib/request.py", line 532, in open + response = meth(req, response) + File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response + 'http', request, response, code, msg, hdrs) + File "/usr/lib/python3.6/urllib/request.py", line 570, in error + return self._call_chain(*args) + File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain + result = func(*args) + File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default + raise HTTPError(req.full_url, code, msg, hdrs, fp) +urllib.error.HTTPError: HTTP Error 400: Bad Request +2018-06-09 15:12:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/application.py", line 64, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 83, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/controllers.py", line 78, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/nanohttp/decorators.py", line 52, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 37, in get + headers=headers + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 72, in get + return request('get', url, params=params, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 58, in request + return session.request(method=method, url=url, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 494, in request + prep = self.prepare_request(req) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/sessions.py", line 437, in prepare_request + hooks=merge_hooks(request.hooks, self.hooks), + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 305, in prepare + self.prepare_url(url, params) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/models.py", line 379, in prepare_url + raise MissingSchema(error) +requests.exceptions.MissingSchema: Invalid URL 'local': No schema supplied. Perhaps you meant http://local? +2018-06-09 16:26:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 37, in get + oath='OAuth' + h + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 72, in get + return request('get', url, params=params, **kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/requests/api.py", line 58, in request + return session.request(method=method, url=url, **kwargs) +TypeError: request() got an unexpected keyword argument 'oath' +2018-06-10 12:49:27 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 30, in get + h = json_library.loads(response_token.text)['access_token'] +KeyError: 'access_token' +2018-06-10 14:31:58 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() +AttributeError: 'NoneType' object has no attribute 'authenticate_request' +2018-06-10 16:35:53 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:36:37 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:40:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:40:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:41:36 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:42:49 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:43:33 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-10 16:45:58 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 11:17:00 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:13:39 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:15:58 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:19:23 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:25:16 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:28:10 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 13:31:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 66, in wrapper + raise ValueError('Cannot encode to json: %s' % type(result)) +ValueError: Cannot encode to json: +2018-06-11 14:49:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['google_access_token'] +KeyError: 'google_access_token' +2018-06-11 15:09:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['google_access_token'] +KeyError: 'google_access_token' +2018-06-11 15:10:01 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['access_token'] +KeyError: 'google_access_token' +2018-06-11 15:10:20 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get + google_access_token=profile['access_token'] +KeyError: 'access_token' diff --git a/setup.py b/setup.py index 42e38dc..df8e0ba 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,8 @@ # reading package version (same way the sqlalchemy does) with open(join(dirname(__file__), 'urlshortener', '__init__.py')) as v_file: - package_version = re.compile('.*__version__ = \'(.*?)\'', re.S).match(v_file.read()).group(1) + package_version = re.compile('.*__version__ = \'(.*?)\'', re.S)\ + .match(v_file.read()).group(1) dependencies = [ @@ -13,6 +14,8 @@ 'hashids', 'nanohttp', 'oauth2client', + 'requests', + 'sqlalchemy', # Deployment 'gunicorn', diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py index bd866c1..f00de09 100755 --- a/urlshortener/__init__.py +++ b/urlshortener/__init__.py @@ -1,5 +1,7 @@ from os.path import dirname, join +from restfulpy.authentication import Authenticator + from restfulpy import Application as BaseApplication from restfulpy.orm import DBSession @@ -22,7 +24,7 @@ def __init__(self, application_name='urlshortener', root=Root()): application_name, root=root, root_path=join(dirname(__file__), '..'), - version=__version__, + version=__version__ ) # noinspection PyArgumentList diff --git a/urlshortener/__pycache__/__init__.cpython-36.pyc b/urlshortener/__pycache__/__init__.cpython-36.pyc index 79ab6e31aaa469c1c0015390ae7afe741ce58f00..6b4da147f3142a7d6aca4923c1dd7054a666a23b 100644 GIT binary patch delta 791 zcmYjOyNVP+6s=c3XL@(s9Y%#^7gr5hWDHD17jXj-16RRB%AjedYM36YA5>Kb!oUVS zFp+_F>ZkY*24-z&HN{5+sR&m9rw13EC=Wu6%35seJ@>CO|t z0v4_TyB~6|!PMn$1L!Uryae&^hiM36)OjqEMVj-DEX%BjVHcg&dcg~w%~D;;51*bt zwI=OR_Y81AAp;aKNHIg4G+>T4U=A5(WF1h4Im}%HYOFBdWN!lqpuXuCNT1y@KTjWuZ?gALLSL+|^27)gBA{)E@|+|E&T z#bxIwNmgV!N!mN;_z-tQaWSW(w5o)iCM%1?jw%O6zI}yWjCTx~*oL7209}Y6YCj`- z^OCvB{Vj|Q>vpq3ajBCxsp2fv=~4RtZ%#d1WQ}(?WsJJBGS4#|BiTz_-b(ahy-xH` zCogAj>*{)o$t@VPQ*v@1*lO!ZT2u0>fi6mtnMjqIaUqiA!cz?8o-MMH(lHR3P`&}* zBWN7>r2l#rk2qiEOQ1FufwV((_tW@22VYxhHl*(!Mqgw*SqmeIqxZ`_Vas rUVG$B9``OsR?2Se!qH#WkLaJ|C94I02u+2uwIeh{L)Zr-cy#awP|l|T delta 731 zcmYk4zi-qq6vzE5zwR!*E0lr|MJg)8F;qw_3>D(KFwugTFcMLSeQJuGM7D20Lh6u{ zI(0z#PuTbuSlO~NF|sl89I6wR-uHd&SRcRV_{aFq=;BG5j=pcF@4ixmexm;d1OFVt zz6TLVV1+d1SQAdLpA$tjgeTww5vq|M^D+2{PhKDqi)4*NB7>H4 zCRvO4UMfa!(0u$04ncF$N1`-Uu4T{8>$3Xt?Q{Wk4Z}W$BoW5~aUw9MmuQIv5p*4M zCYT7;h{K5@f*f8VhIjcG6E)M%lC4I9W;4-6i|Cqdu^!Mw&j(va%{&mYEoU-AnQy!acK6ExRl7YA1!o z9e>;i1mO@9%(~x%Kb*nT+}OxXaQ(EbtTZnBkXtEom+y5AyMa2|&tKh;Rl}ZQ|IKWZ`H$gEqYstIg%#0jK zCV0zxiF0HxyaiXDf+yghE2ms|08VskcDHsZ>{6>+KP`3l_h~-q_tRg#y7&Fx2_b)x zE58Wz$I#60AOsP#BE0P>55Nwpux6aq5s&Ja#}wzns#7OC@j9!zb;{Ga$9r|gv%1gw zHRZG(@Ik%7H|kBk>DSR}i*Li;sJc<_@EuAdlQFbN-ds}=uLF>sb-;J!ExEgb z;}Lb;&p-Q48dIufl(@mS(%7e}v07D?)Q(yCvvu7st(`wpi$=K41SWBe&5UYXVx+ZY zb7Wk(0y+adn#G_+el+%@G3cFH0yEteT?ePZDww6B z^E}i)+TNPHqA(l6Y$g)Xwf)%u<~N{B>5$waB^AB1;51x?=X-v&n|=?j3vt~kvs)`B zGB}HgzLx_pH-6jnso+rK(F4Gb~AtyFp=#uxZRpiYdkSo{6Twc07iN8VnKF^BD1aOmE^;|Yk z;m)xvgw)2RN99kl$vw_`)1oe`WotyTF3QT?I8y4UlKHj$Oz*;3`WA{k6hjcBn~sTc zVs#e`m%Ug>z08f(05}&ON$a++T{lNe=^n1#x*AoEIdO@W;J{ep*jyRQ2RMpBw-LCW zv4ve2pE8|+6W&+nORBt>mo7ti=2dy93%ztvr3ztm2Nvo+iUA6IFkDy&;o^y^>(U|? zjjX0TJyc@Z9>oV*nz?F>Jhyi)Z3rr#Yc(w^;OK=C*Pc7S5j_I;|2*42R<+!()p1eR zh1h?o^m8EdMD8ziWuQ`4Hd0?VkhLwP%{~S-o-g$saE3`YAA=xaOcT0EGn&#Y7z8Pe z14da8(17kSv@+0R|Ic7H2~LtH=m>6n$ukCiFaw@vpMqk^%yY{!0WbUCZMc!^5rEcc}ZCGtzP^h3|(@MSM>>0|vsaAD<4M`^V75ERlaLmJt_gZB5 zL-akkp4-B#UXlc0RcZK`kP*}GL#IDNv5yNQgqie}Y{dsSbsxkdXl4@x2@}YAOw*7- zp9LpfpJ_zx!KmYs+|wz~U7F{$5)0r`?y@|8u_!8JU7qU{y!ZmQ0KJbUg6E3x=i+fY z&Zlo{jqLI*gGFS5oRt`Eqy(?vC3j+L%k_$N)#sAG8k zHNLy;1uz$$#Xf(YUY<34_;#D=RZ@`QRCc*}%F$%wxO|1H?3r zX?Tlx*Av!13h(0icTr$`SF+%ff~j!H!#0-4uU^|TTcY~ zb6D1akbxv+P!Ucl%4rqykf4p0tcrM4#XN5IVVP7ZPpcMhRc+p`I=oYLdAISgvd8<1 zs1O!aI~yXS4Fwr*DBt}ikcmuR2QpRZCgk@d`#u=7{)EiIAoOgei`pl$Fm+ZbpJb7Gk zlO-Jvmyb>}t7PV~QC=3RcEYOMC})Qll4Bijo)DDhux}q{TYnfkUDqAZ$>%12fWF5M$Y|CI3Zo)Nly%pP#b+n3R z{Y^02ksa8@s~BqRp7_Y-fFQhF<`iHXH+yUPP~r076ySR{8kIWF%Bi;Q+0o(A;V6T1 zEx$mY1?R=Z#c-naq*U3wu)|zeBaIQCjeh!cw6Mw)^;i$*Mvse9d6sJldH4Z_Xj3dR zSLj+8W#_tv;9bb;dx+ePa~Xe!`^U?t|10G(TDbAkqrtA<-={-!%%@s&Xe5rr@2ia`{v^eWq&P z0bWU9Sdo?1M~%%O8w?C!;F(dG^s!V8IEiOgm1FY``X8b{nSx&#>qDc?efkD0-b0?= zVE21qK7i=Ijz?2nsZph;Syg3nbfL`|j83jbFfJBwb*fh8?gocrJ2|##?{I!;?!(WJ z2KF(CAWR7*ZL%B2gi(rbnvy42aE&@*4(NC3velrBF(-q>r$XS}D1>hd zQE9m-QSSq^7|hWSD2bQxEjp)lR%`5+!AozO7ZGR%rzwa(_^**1;zTy!;>mFQgxKPWh21K+ bslS0M{c?Nkukf0+7`6}8d<3N2BXRgQi6h{R diff --git a/urlshortener/controllers/__pycache__/root.cpython-36.pyc b/urlshortener/controllers/__pycache__/root.cpython-36.pyc index db754b6bd6a26a399bcc94e2d220fc038b199023..a4ba659fd5b9684ba76d423d1d4bdd8cbffb9220 100644 GIT binary patch delta 16 XcmdnZx0{dMn3tDp=N93O>?Z60C_DsY delta 16 XcmdnZx0{dMn3tDJjE#3Ay9ql0AC&_Q diff --git a/urlshortener/controllers/auth.py b/urlshortener/controllers/auth.py index e70594f..9941fc8 100644 --- a/urlshortener/controllers/auth.py +++ b/urlshortener/controllers/auth.py @@ -1,12 +1,18 @@ +import requests +import json as json_library from os.path import join, dirname, abspath -from urllib.request import Request, urlopen - -from nanohttp import RestController, text, HttpFound, context, json, settings +from restfulpy.orm import DBSession +from nanohttp import RestController, text, HttpFound, context, json, settings,\ + HttpForbidden, HttpNotFound import google_auth_oauthlib.flow +from urlshortener.models.member import Member + client_secret_file = join(abspath(join(dirname(__file__), '..')), 'basedata/client_secrets.json') +json_data = open(client_secret_file).read() +client_secret_data = json_library.loads(json_data)['web'] class Auth(RestController): @@ -14,25 +20,43 @@ class Auth(RestController): @json def get(self): - flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file( - client_secret_file, - scopes=context.query_string.get('scope'), - state=context.query_string.get('state'), - redirect_uri=settings.auth_url - ) + body_token = dict() + body_token['grant_type'] = 'authorization_code' + body_token['code'] = context.query_string.get('code') + body_token['client_id'] = client_secret_data['client_id'] + body_token['redirect_uri'] = settings.redirect_uri_auth + body_token['client_secret'] = client_secret_data['client_secret'] - flow.fetch_token( - authorization_response=settings.oauth_scope, - code=context.query_string.get('code'), + response_token = requests.post(settings.auth_uri_token, body_token) + + if response_token.status_code != 200: + raise HttpForbidden() + + response_get_profile = requests.get( + settings.oauth_url_api, + headers={ + 'Authorization': + 'OAuth ' + + json_library.loads(response_token.text)['access_token'] + }, ) - if flow.credentials is not None: - headers = {'Authorization': 'OAuth ' + flow.credentials.token} - req = Request(settings.oauth_url_api, None, headers) + if response_get_profile.status_code != 200: + raise HttpNotFound() - response = urlopen(req) + profile = json_library.loads(response_get_profile.text) + + member = Member( + given_name=profile['given_name'], + family_name=profile['family_name'], + email=profile['email'], + google_access_token= + json_library.loads(response_token.text)['access_token'] + ) + DBSession.add(member) + DBSession.commit() - return response.read().decode("utf-8") + return response_get_profile.text @text def post(self): @@ -40,7 +64,7 @@ def post(self): flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file( client_secret_file, scopes=[settings.oauth_scope], - redirect_uri=settings.auth_url + redirect_uri=settings.redirect_uri_auth ) authorization_url, state = flow.authorization_url( diff --git a/urlshortener/models/__pycache__/member.cpython-36.pyc b/urlshortener/models/__pycache__/member.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d545b9bb62627f6946deaf2c3fe8909ba90caebb GIT binary patch literal 642 zcmY*XJ&)8d5Vf6;U9uZE325oJxkx~X&!3Lp|`4Q92n^OyQe5Z{lqS9H|wzEyb}gE4+ZDO z%0WlG=KN+5`p-?tc`vRs%+y6Uj$sH)NtZ-WwCKK@DuvaxFiMXz$-oGu!^76v7AuRU z0q=Ql_t1SO?oq51!>`xX&KjtU-3eoatiD*c_Xp8HH8|~e*7eYV`=6j%(7u{opC3k- zW2Gq0uQ4oX%I?$kG^d*_wyN+qTIgm6W}F<%>PrW{zaI2qJh#rc_`l31W5ItSXY?4) T!t%x3s+ZVB;$y-YJxhKAmB*?f literal 0 HcmV?d00001 diff --git a/urlshortener/models/__pycache__/urls.cpython-36.pyc b/urlshortener/models/__pycache__/urls.cpython-36.pyc index 77621f6065fb2efa320da096704df36a134d9f6c..574498470120742b33b82a25687a67370e6e3fb7 100644 GIT binary patch delta 295 zcmZ3-GMlB|n3tF9qq|&m5F-P_V+JI^0%SV?aj^-INMT4}%wfo7jAG1Xieh2}@tJa% zb6KKTa#^ET85!IeQkYX%S{PDTQdydrqu5edgBdj0UIKM8XfoYm_slCvO;0Vl#THyr zl$nqMN zg~cES2O|p;A7c@S>8Htli>tUWCov~EBQ>`YY!1W>-lEjvlC;vCf=a#oqTC{oe~Q3X ifwV!5hO>l#tXmv5x%nxjIjMHQuwW<#X%Ju(UY z#I;oX1$RlqN;8@r?Tq$QZPn{VRgJ#Cj_ℜ0OMVO8PpXyG-Q3p@)DLgRmk)p6358dyRFMO>Q?^2&mSplSR{{Sru=ZMn7V$k_Ai_BXAYbj VI5+IGeCW^XUQGrRQ+0|b@(-&KG?oAW diff --git a/urlshortener/models/member.py b/urlshortener/models/member.py new file mode 100644 index 0000000..8297360 --- /dev/null +++ b/urlshortener/models/member.py @@ -0,0 +1,13 @@ +from sqlalchemy import Integer, String +from restfulpy.orm import DeclarativeBase, Field + + +class Member(DeclarativeBase): + __tablename__ = 'members' + + id = Field(Integer, primary_key=True, autoincrement=True) + given_name = Field(String(50)) + family_name = Field(String(50)) + email = Field(String(50)) + google_access_token = Field(String(500)) + diff --git a/urlshortener/models/urls.py b/urlshortener/models/urls.py index 6319acb..2213bed 100755 --- a/urlshortener/models/urls.py +++ b/urlshortener/models/urls.py @@ -1,4 +1,4 @@ -from sqlalchemy import Integer, String, Sequence +from sqlalchemy import Integer, String from restfulpy.orm import DeclarativeBase, Field diff --git a/urlshortener/tests/helpers.py b/urlshortener/tests/helpers.py index ea82fbb..919f1a7 100755 --- a/urlshortener/tests/helpers.py +++ b/urlshortener/tests/helpers.py @@ -1,5 +1,7 @@ from os.path import join, dirname, abspath +from restfulpy.authentication import Authenticator + from nanohttp import settings from restfulpy.testing import WebAppTestCase from bddrest.authoring import given @@ -33,3 +35,48 @@ def given(self, *args, **kwargs): headers = kwargs.setdefault('headers', []) headers.append(('AUTHORIZATION', self.login_token)) return given(self.application, *args, **kwargs) + + +class MockupApplication(Application): + def insert_basedata(self): + pass + + builtin_configuration = ''' + db: + test_url: postgresql://postgres:postgres@localhost/restfulpy_test + administrative_url: postgresql://postgres:postgres@localhost/postgres + logging: + loggers: + default: + level: critical + ''' + + def __init__(self, application_name, root): + super().__init__( + application_name, + root=root + ) + self.__authenticator__ = Authorization() + + def configure(self, files=None, context=None, **kwargs): + _context = dict( + process_name='restfulpy_unittests' + ) + if context: + _context.update(context) + super().configure(files=files, context=_context, **kwargs) + + +class Authorization(Authenticator): + + def validate_credentials(self, credentials): + pass + + def create_refresh_principal(self, member_id=None): + pass + + def create_principal(self, member_id=None, session_id=None, **kwargs): + pass + + def authenticate_request(self): + pass diff --git a/urlshortener/tests/test_auth.py b/urlshortener/tests/test_auth.py index 3c57cc7..69a485f 100644 --- a/urlshortener/tests/test_auth.py +++ b/urlshortener/tests/test_auth.py @@ -3,21 +3,64 @@ from bddrest.authoring import then, response from restfulpy.testing.mockup import http_server -from restfulpy.tests.helpers import MockupApplication -from nanohttp import RestController, settings, text +from urlshortener.tests.helpers import MockupApplication +from nanohttp import RestController, settings, json, context, HttpBadRequest, \ + HttpUnauthorized from urlshortener.tests.helpers import BDDTestClass -class OAuthMockupServer(RestController): - @text +class Token(RestController): + @json + def post(self): + if '4/AAA' in context.form.get('code'): + return dict( + access_token='ya29.GlzVBYKNxVGGMl6euQ6U-_QIhylTdqoYXxW3MHOXL7\ + r6WmO2xx_wkBht6TT6OIP0eoDjcQIm3Y6JXmAExohf7GU3xuhs6cF9EcL5DbT\ + owmmH-nBlVE6Uop2IftiFtQ' + ) + elif '5/AAA' in context.form.get('code'): + return dict( + access_token='ya30.GlzVBYKNxVGGMl6euQ6U-_QIhylTdqoYXxW3MHOXL7\ + r6WmO2xx_wkBht6TT6OIP0eoDjcQIm3Y6JXmAExohf7GU3xuhs6cF9EcL5DbT\ + owmmH-nBlVE6Uop2IftiFtQ' + ) + else: + raise HttpBadRequest() + + +class Profile(RestController): + + @json def get(self): - return 'code' + access_token = context.environ.get('HTTP_AUTHORIZATION') + + if 'ya29.GlzVBYKNxVGGMl6euQ6U' in access_token: + return { + 'id': '105202566366011957392', + 'email': 'mohammadsheikhian70@gmail.com', + 'verified_email': True, + 'name': 'Mohammad Sheikhian', + 'given_name': 'Mohammad', + 'family_name': 'Sheikhian', + 'link': 'https://plus.google.com/105202566366011957392', + 'picture': 'https://lh4.googleusercontent.com/-9gnVQNZquf%20g' + '/AAAAAAAAAAI/AAAAAAAAAD0/g4AAMkzYkpc/photo.jpg', + 'gender': 'male', + 'locale': 'fa' + } + else: + raise HttpUnauthorized() + + +class Root(RestController): + token = Token() + profile = Profile() @contextmanager def oauth_mockup_server(root_controller): - app = MockupApplication('mockup-oauth', root_controller) + app = MockupApplication('root', root_controller) with http_server(app) as (server, url): settings.merge(f''' tokenizer: @@ -28,17 +71,56 @@ def oauth_mockup_server(root_controller): class AuthTestCase(BDDTestClass): - def test_auth(self): - with oauth_mockup_server(OAuthMockupServer): + def test_auth_post(self): + + call = dict( + title='POST', + description='redirect', + url='/auth', + verb='POST', + ) + with self.given(**call): + then(response.status_code == 302) + + def test_auth_get(self): + with oauth_mockup_server(Root()): + settings.mockup_server_url = settings.tokenizer['url'] + settings.auth_uri_token = settings.mockup_server_url + '/token' + settings.oauth_url_api = settings.mockup_server_url + '/profile' call = dict( - title='POST', + title='GET', + description='incorrect code or state or scope', + url='/auth', + verb='GET', + query={ + 'state': 'DAMDzeJImyByVNSdUOVMzy5moo77JZ', + 'code': '_ieAH5x0_nAl45U03Iom6Ut2bcMV-oN8pYrnZtGUYKD' + 'povHVmjpCbWu4zBdUYrLtb6JMguFf_E2tyxqLo_vo', + 'scope': 'https://www.googleapis.com/auth/userinfo.profile' + ' https://www.googleapis.com/auth/plus.me ' + 'https://www.googleapis.com/auth/userinfo.email' + } + ) + with self.given(**call): + then(response.status_code == 403) + + call = dict( + title='GET', description='', url='/auth', - verb='POST', + verb='GET', + query={ + 'state': 'DAMDzeJImyByVNSdUOVMzy5moo77JZ', + 'code': '5/AAA_ieAH5x0_nAl45U03Iom6Ut2bcMV-oN8pYrnZtGU' + 'YKDpovHVmjpCbWu4zBdUYrLtb6JMguFf_E2tyxqLo_vo', + 'scope': 'https://www.googleapis.com/auth/userinfo.profile' + ' https://www.googleapis.com/auth/plus.me ' + 'https://www.googleapis.com/auth/userinfo.email' + } ) with self.given(**call): - then(response.status_code == 302) + then(response.status_code == 404) call = dict( title='GET', @@ -46,9 +128,12 @@ def test_auth(self): url='/auth', verb='GET', query={ - 'state': 'sdfsd', - 'code': 'sdfs', - 'scope': 'asd' + 'state': 'DAMDzeJImyByVNSdUOVMzy5moo77JZ', + 'code': '4/AAA_ieAH5x0_nAl45U03Iom6Ut2bcMV-oN8pYrnZtGU' + 'YKDpovHVmjpCbWu4zBdUYrLtb6JMguFf_E2tyxqLo_vo', + 'scope': 'https://www.googleapis.com/auth/userinfo.profile' + ' https://www.googleapis.com/auth/plus.me ' + 'https://www.googleapis.com/auth/userinfo.email' } ) with self.given(**call): From 2adcdcae99e270c7456baa94712e5a1222ec8b72 Mon Sep 17 00:00:00 2001 From: mohammad Date: Mon, 18 Jun 2018 17:07:07 +0430 Subject: [PATCH 15/16] add document --- .idea/markdown-navigator.xml | 78 ++ .../markdown-navigator/profiles_settings.xml | 3 + .idea/misc.xml | 2 +- .idea/modules.xml | 3 + .idea/urlshortener.iml | 3 + .idea/vcs.xml | 1 + .idea/workspace.xml | 711 ++++++++++-------- data/logs/urlshortener-error.log | 285 +++++++ data/logs/urlshortener.log | 285 +++++++ urlshortener/__init__.py | 9 + .../__pycache__/__init__.cpython-36.pyc | Bin 1491 -> 1771 bytes .../__pycache__/auth.cpython-36.pyc | Bin 2093 -> 2396 bytes .../__pycache__/root.cpython-36.pyc | Bin 1851 -> 2121 bytes urlshortener/controllers/auth.py | 39 +- urlshortener/controllers/root.py | 24 +- urlshortener/document/auth_get_.md | 27 + urlshortener/document/auth_post_.md | 21 + .../document/root_get_with_authorization_.md | 38 + .../root_get_without_authorization_.md | 33 + urlshortener/document/root_post.md | 36 + urlshortener/document/urls_get_.md | 19 + .../__pycache__/index.mak.cpython-36.pyc | Bin 1336 -> 1483 bytes urlshortener/makomodules/index.mak.py | 12 +- .../models/__pycache__/member.cpython-36.pyc | Bin 642 -> 678 bytes urlshortener/models/member.py | 2 +- urlshortener/templates/index.mak | 1 + urlshortener/tests/helpers.py | 2 + urlshortener/tests/test_auth.py | 28 +- urlshortener/tests/test_root.py | 29 +- urlshortener/tests/test_urls.py | 7 +- 30 files changed, 1357 insertions(+), 341 deletions(-) create mode 100644 .idea/markdown-navigator.xml create mode 100644 .idea/markdown-navigator/profiles_settings.xml create mode 100644 urlshortener/document/auth_get_.md create mode 100644 urlshortener/document/auth_post_.md create mode 100644 urlshortener/document/root_get_with_authorization_.md create mode 100644 urlshortener/document/root_get_without_authorization_.md create mode 100644 urlshortener/document/root_post.md create mode 100644 urlshortener/document/urls_get_.md diff --git a/.idea/markdown-navigator.xml b/.idea/markdown-navigator.xml new file mode 100644 index 0000000..076726f --- /dev/null +++ b/.idea/markdown-navigator.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/markdown-navigator/profiles_settings.xml b/.idea/markdown-navigator/profiles_settings.xml new file mode 100644 index 0000000..57927c5 --- /dev/null +++ b/.idea/markdown-navigator/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 24565d1..7d3efc4 100755 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 63a7dbd..45e1771 100755 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,11 @@ + + + diff --git a/.idea/urlshortener.iml b/.idea/urlshortener.iml index 83ffe2d..d63b14b 100755 --- a/.idea/urlshortener.iml +++ b/.idea/urlshortener.iml @@ -8,6 +8,9 @@ + + + - + - - + + @@ -461,18 +484,19 @@ + - + - + @@ -492,35 +516,35 @@ - - - - + - - + + - - + + - - - - + - + - + - + - - + + + + + + + + @@ -534,31 +558,32 @@ + - - + - + - - + + + + - @@ -590,25 +615,55 @@ 358 - import json json.loads(r.text) + Python CODE_FRAGMENT - - - context.environ + Python - EXPRESSION + CODE_FRAGMENT + + + + Python + CODE_FRAGMENT + + - context.path + response Python EXPRESSION - context.request_scheme + context.environ Python EXPRESSION - context.form + configure() Python EXPRESSION - context.application + headers Python EXPRESSION - context.request_uri + header Python EXPRESSION - context.method + context.response_headers Python EXPRESSION - context.cookies + context Python EXPRESSION - context.query_string + context.form Python EXPRESSION - context + json_library.loads(response_token.text)['refresh_token'] Python EXPRESSION - json_library.loads(response_token.text) + settings.oauth_url_google_api Python EXPRESSION - json_library.loads(response_token.text)['access_token'] + context.cookies Python EXPRESSION - settings.oauth_url_api + context.identity Python EXPRESSION - response.read().decode("utf-8") + JwtPrincipal.load(context.identity) Python EXPRESSION - client_secret_data + context.identity.encoded() Python EXPRESSION - client_secret_data['web'] + context.identity.encoded Python EXPRESSION - assert isinstance(json, object) -import json + context.identity.load() Python EXPRESSION - import json + context.identity.load Python EXPRESSION - import json json.loads(r.text) + context.indetity Python EXPRESSION - + - - + + - + - - + + - + - - + + - + - - + + - + - + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - + - + - - - + - + - - - + - + - - + + - + - - - + - + - - + + - - - - - - + + - + - - + + - - - - + + + + + + + + + + - - - - + + + + + + + - - - - + + + + + + + + + - - - - + + + + + + + - + - - + + - + - - + + - + + + + - - + + - - - - + + + + + + + - + - - + + - - - - + + + + + + + - - - - + + + + + + + - - - - + + + + + + + + + - + - + - + - + + + - + - + - + - - + + - - - - + - - + + - + - - + + - + - - + + - - - - + - - + + - - - - + + + + + + + - + - - + + - - - - + + + + + + + - - - - - - + + - + - - + + - + - - + + diff --git a/data/logs/urlshortener-error.log b/data/logs/urlshortener-error.log index 2a7d5c0..8e9b78f 100755 --- a/data/logs/urlshortener-error.log +++ b/data/logs/urlshortener-error.log @@ -10747,3 +10747,288 @@ Traceback (most recent call last): File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get google_access_token=profile['access_token'] KeyError: 'access_token' +2018-06-14 14:01:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in get + if json_library.loads(response_token.text)['refresh_token'] is not None: +KeyError: 'refresh_token' +2018-06-14 14:05:14 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 58, in get + email=profile['email'], +KeyError: 'email' +2018-06-17 16:30:52 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 72, in get + .filter_by(email=profile['email']).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-06-18 10:36:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 25, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/index.mak.py", line 23, in render_body + __M_writer(str(name)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-06-18 11:17:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 11:20:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 12:01:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(principal_encoded.decoded()) +AttributeError: 'bytes' object has no attribute 'decoded' +2018-06-18 12:02:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(principal_encoded.decoded()) +AttributeError: 'bytes' object has no attribute 'decoded' +2018-06-18 12:14:33 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(principal_encoded.decoded()) +AttributeError: 'bytes' object has no attribute 'decoded' +2018-06-18 12:58:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal_encoded = context.environ['HTTP_TOKEN'] +KeyError: 'HTTP_TOKEN' +2018-06-18 12:58:59 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal_encoded = context.environ['HTTP_TOKEN'] +KeyError: 'HTTP_TOKEN' +2018-06-18 12:59:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal_encoded = context.environ['HTTP_TOKEN'] +KeyError: 'HTTP_TOKEN' +2018-06-18 13:00:45 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in get + if context.environ['HTTP_TOKEN'] is None: +KeyError: 'HTTP_TOKEN' +2018-06-18 13:01:12 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in get + if context.environ['HTTP_TOKEN'] is None: +KeyError: 'HTTP_TOKEN' +2018-06-18 14:28:16 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 14:28:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 14:31:46 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 14:45:47 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(context.identity) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +AttributeError: 'JwtPrincipal' object has no attribute 'startswith' +2018-06-18 14:48:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(context.identity) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +AttributeError: 'JwtPrincipal' object has no attribute 'startswith' diff --git a/data/logs/urlshortener.log b/data/logs/urlshortener.log index 2a7d5c0..8e9b78f 100755 --- a/data/logs/urlshortener.log +++ b/data/logs/urlshortener.log @@ -10747,3 +10747,288 @@ Traceback (most recent call last): File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 55, in get google_access_token=profile['access_token'] KeyError: 'access_token' +2018-06-14 14:01:11 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 54, in get + if json_library.loads(response_token.text)['refresh_token'] is not None: +KeyError: 'refresh_token' +2018-06-14 14:05:14 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 58, in get + email=profile['email'], +KeyError: 'email' +2018-06-17 16:30:52 - main - ERROR - Internal Server Error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/nanohttp/nanohttp/decorators.py", line 62, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/auth.py", line 72, in get + .filter_by(email=profile['email']).one_or_none() + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2863, in one_or_none + "Multiple rows were found for one_or_none()") +sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none() +2018-06-18 10:36:24 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 25, in wrapper + return template_.render(**result) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/template.py", line 462, in render + return runtime._render(self, self.callable_, args, data) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 838, in _render + **_kwargs_for_callable(callable_, data)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 873, in _render_context + _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 899, in _exec_template + callable_(context, *args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/makomodules/index.mak.py", line 23, in render_body + __M_writer(str(name)) + File "/home/mohammad/.virtualenvs/urlshortener/lib/python3.6/site-packages/mako/runtime.py", line 226, in __str__ + raise NameError("Undefined") +NameError: Undefined +2018-06-18 11:17:22 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 11:20:19 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 12:01:25 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(principal_encoded.decoded()) +AttributeError: 'bytes' object has no attribute 'decoded' +2018-06-18 12:02:13 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(principal_encoded.decoded()) +AttributeError: 'bytes' object has no attribute 'decoded' +2018-06-18 12:14:33 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(principal_encoded.decoded()) +AttributeError: 'bytes' object has no attribute 'decoded' +2018-06-18 12:58:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal_encoded = context.environ['HTTP_TOKEN'] +KeyError: 'HTTP_TOKEN' +2018-06-18 12:58:59 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal_encoded = context.environ['HTTP_TOKEN'] +KeyError: 'HTTP_TOKEN' +2018-06-18 12:59:30 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal_encoded = context.environ['HTTP_TOKEN'] +KeyError: 'HTTP_TOKEN' +2018-06-18 13:00:45 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in get + if context.environ['HTTP_TOKEN'] is None: +KeyError: 'HTTP_TOKEN' +2018-06-18 13:01:12 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 34, in get + if context.environ['HTTP_TOKEN'] is None: +KeyError: 'HTTP_TOKEN' +2018-06-18 14:28:16 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 14:28:42 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 14:31:46 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 71, in __call__ + self._hook('begin_request') + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 43, in _hook + return getattr(self, name)(*args, **kwargs) + File "/home/mohammad/workspace/restfulpy/restfulpy/application/__init__.py", line 84, in begin_request + self.__authenticator__.authenticate_request() + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 151, in authenticate_request + self.ok(self.verify_token(encoded_token)) + File "/home/mohammad/workspace/restfulpy/restfulpy/authentication.py", line 138, in verify_token + return JwtPrincipal.load(encoded_token) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +TypeError: startswith first arg must be bytes or a tuple of bytes, not str +2018-06-18 14:45:47 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(context.identity) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +AttributeError: 'JwtPrincipal' object has no attribute 'startswith' +2018-06-18 14:48:44 - main - ERROR - Internal server error +Traceback (most recent call last): + File "/home/mohammad/workspace/nanohttp/nanohttp/application.py", line 83, in __call__ + response_body = self.__root__(*remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 84, in __call__ + return self._serve_handler(handler, remaining_paths) + File "/home/mohammad/workspace/nanohttp/nanohttp/controllers.py", line 79, in _serve_handler + return handler(*remaining_paths, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/helpers.py", line 17, in wrapper + result = func(*args, **kwargs) + File "/home/mohammad/workspace/urlshortener/urlshortener/controllers/root.py", line 40, in get + principal = JwtPrincipal.load(context.identity) + File "/home/mohammad/workspace/restfulpy/restfulpy/principal.py", line 30, in load + if encoded.startswith('Bearer '): +AttributeError: 'JwtPrincipal' object has no attribute 'startswith' diff --git a/urlshortener/__init__.py b/urlshortener/__init__.py index f00de09..cd6070b 100755 --- a/urlshortener/__init__.py +++ b/urlshortener/__init__.py @@ -4,6 +4,7 @@ from restfulpy import Application as BaseApplication from restfulpy.orm import DBSession +from urlshortener.models.member import Member from urlshortener.models.urls import Url from .controllers.root import Root @@ -34,7 +35,15 @@ def insert_basedata(self): # pragma: no cover # noinspection PyArgumentList def insert_mockup(self): url = Url(url='http://www.varzesh3.com') + member = Member( + given_name='mohammad', + family_name='sheikhian', + email='mohammadsheikhian70@gmail.com', + google_access_token='fgbsdibfosdnfosd', + google_refresh_token='fgbdyugbdsiubgdufig' + ) DBSession.add(url) + DBSession.add(member) DBSession.commit() diff --git a/urlshortener/__pycache__/__init__.cpython-36.pyc b/urlshortener/__pycache__/__init__.cpython-36.pyc index 6b4da147f3142a7d6aca4923c1dd7054a666a23b..bf5fd746da448e2279dec016529d1725e9888077 100644 GIT binary patch delta 738 zcmZ8f&ubJh7)|Ea{+#Z%yRsrylvZRfOTj}gr4$uCiHDwy=#ZUcXQrD>N-|rhSbA7b zLJxKR62bqZcvg<7_l0wi#6FH9pDYpeTG<*wcaDv;34KCK1M zxg2x->C0z~+vNx6(C>ikp#0`!_cws){t9jYTXeGAa9u=WYB-|>y;~l;J1<<=szE)5 zGJ608VwgD>_zV}Axy)le3#_#Z|I8_zBljJiV~i^1ESWb)U>Sk2MtSAlJ12FiQYs~7 zq+wE?P1B6#Z#VxoSFPQhgGACyjAA88can?^%f=IBSZ;yzpuS<$14Ouqoz<#4OJ(7xX zVMa@XweqEZ=Z(D<>BcHAv=V}AGtx>Gx^l2?C0iD*C!}K4nAG<`ZzlLYh7-mH&~@5Q M8^fy5bGzHW0SY5Qca5K6A;&(;N{cppxpa5mMNQ2!3^G0v0E7gxdoX?~LAFI;~FZ6vFo6 zU&t@9uuE&FU@h1|zPnTVOz z=R7c@QJM~NpJt`qs`_2(@}IazG-7gsCfc%*SI*VV3et&v!=otV#dNS zO8P=Xagv1Le4h{5ifZx{3bG z)T6!97SH>13pD2ZLNuTQjJVECXa*lNO4)3Wv?qY-_3UNpnhAq&{N?(&2BO^$y;@XCbD^mXoOCv*T%=8sz#_e-T z7-JZhO5g;z8PZ={nUaBqbKgiU6#x@?7Q zSnohs_6QA7fLY^=thJR^X?~U6QlsoNWw+LuqZBjqJ1lmkyV6+`Hr83I#P$ePK2IyB z=eBSl%g&jxHe@gCuZ#?11Z*oq7{y~?7o-aX8Gtiz!@6fU9KuN$YGXKm_hF$=6UJ$M zIuCd(y@1hXMN>W%TvFFx%Hu=?U-&Y}{~-OQBRC5LpGt2jf_$jmY&8Wx57oO}Ls%F}dXTJ)>Q|2UZ7QZX3`JO4?0-DxYi&Vs2F zPX4>Le``yH*P0#8Sdvl8sCl`a7o=w234-< zG+A)*a(>4gT&u(KL>F&BCvGUX2~Zg747fN@6D3?z>=l5+{A=@rL-;Wup~4pBDX4{W z#{Vi@Sm;4ZbpVSvZwWOs*%f=xiPFof`K8*y{T>uv9xdmKldFq=Zm=-HsIX!`PLAOY z3w3KZ`>CLXtw3d07HLz7cK)okV_b*HBLAVb{kf`4VR;^ufP0>JQw?=UJ}z{@eMakH zn#3OSr7!lCr(Fdq#Q)2tux>{QTh94A@Yg`;5Ws>G^`Qg~zCs{9;zA)D+|vFA#Bnyu delta 1108 zcmZuv&2QX96rVR9d%gbH-E6i=7Sa|q5@ew*UxEuIs>GoO(p)$o4Fb#cOcFcxIvP(v zpj}16Ii?cD^j6NCxb&~!FX+MQt*2h#$dxxv5ItaPe)B$Oe($|`KK^~Q^G|ei87X2zgilhho47#gGq+5g!2&L_og6$GF@1YBAvx zAd*Q3mo2Za_G-%4#N>FAf+nIxs z-C3Q^>Y&`qT=eu8P}3z{(99FPBTIdw{hIs;=(W%r2v_uVm<`ZBJVnCZl&q5!g#VB( zt%Y@&^s^pyNhZ+BhBYjiURf{^;AKpN9S%AiPKg*jWJ_C*v(<%N0}zxZH34EWvGA2W zK8{cHVX4v|Vx5-rC@F>H-hpbKSp8e9)A~uC%DIkG(FRJ2RLMj~Co1LPrK6IGlDc_n zecb$QUH_y$7vg66*AA$2P#(Iw{~8}qEbC`M`&PRz`V59 ziiK#Mq%4Y5H+%LT%$i^A-JMPJ8FJMJ2*h&0g%JecK|lx81BWtTlmdkfX0!lhr~3o+ zy3Hrf5saJPoby#5)46{^u1d;dsjfBmd+YDxvnSYqH*r(947`ib+NLh4X2#IL+eUf= zVW)ZA`+V0ks^NA~i*dXX{9nch9TQv?LvU%Zt&C-MRb9tTb*J2DZo2Q?cjxiEJkgxpFF+joW^kGsWe! ztnG21-C%M?)?YALR~2PWOn(kv8nTHmO}ra^N6pLDj)2eTdlr2!_zQ8@@1l?HgmE^W zQ46XwVH1pgpC!vCQ;Rz;eBvnM?3h}TZ4y0TiTHy_>kjkg{=uY~$BW8uLDmmtme2EB zOB?uLULEN^(Yp|3NbTDy-c*o3=kItszarMH23ofBSK{hf13928w7-Wry4Dd|_-6va z5m3*$@pzXmCjQq*@(@9@0hesYfsPiE;}Lt}4%5cK)YgO#Y?2Qu(%9nzXTqNIXZzZ} zey1%;t*SJ;rN2Q{T3s9idGhRyf_b7alOR^buDu<^VKm0dEENY~1WT9$EF*X>SV#&d zlq%7o9v7wzw>043Sz$dMDHwxGe04jFw1VE|7*^;$l_si}LN7sDREEJgN(1Q$m?fbd zm;L*hoFvVI zNtS7v!!*+ubI&?8)gkdb!9w1%7Jsf0OVQyR!GU4Pl`GIi0rfX?5FBoETQoY*&Hu74 z-CKq;WJdc?I7yJCeXWO3t`zM@S)xA&D%0DeXgFTmN)ruf6e-BSCZpPcjQT)hf@U7t ztNE6_wz7zIW&ISiN))WcsZ>$6_H7n!zGtuQQg^VYDjJf@vKm@hproNJ_5yJiNv-+2 z8gHfn$eRgH9!5i5SVIUgqyH(pa4uoIQKWw1Xq!=+r$w7j^J(D_?w?u1HColiX$L26 JiR*Wk$CzUq0^Pam3(@01An zPELF^uy4RrzX3SmG$T1pXwDLrTZu(6#fGRNC3W-L}HOI95DG4ctYTAC9OP8V&I5pgpxyFv_v!`GfK$=GFq{T zXdhJN4+=S`S>jF1JR&3JJtVwzmvp0FAe5MOy0_A$MR|9i(jiy3!M1m%I>q&#%#<iJNo z(lMKM$17^%k?4-PQ)EmkQW)noSPZaf^6<@&ZB`Auw0UJ@dBQS*v1kIThJNNG0d0@H!+mmvhmV(7J5C smCx>-qOx$e@-d%g;yT`yS_Oz`9S3udS6a8KR#*u-E)8H4jQTMC0w1cFE&u=k diff --git a/urlshortener/controllers/auth.py b/urlshortener/controllers/auth.py index 9941fc8..89c5cbb 100644 --- a/urlshortener/controllers/auth.py +++ b/urlshortener/controllers/auth.py @@ -4,7 +4,7 @@ from restfulpy.orm import DBSession from nanohttp import RestController, text, HttpFound, context, json, settings,\ - HttpForbidden, HttpNotFound + HttpForbidden, HttpNotFound, HttpBadRequest import google_auth_oauthlib.flow from urlshortener.models.member import Member @@ -20,6 +20,11 @@ class Auth(RestController): @json def get(self): + if(context.query_string.get('code') is None) or \ + (client_secret_data['client_id'] is None) or \ + (client_secret_data['client_secret'] is None): + raise HttpBadRequest + body_token = dict() body_token['grant_type'] = 'authorization_code' body_token['code'] = context.query_string.get('code') @@ -27,18 +32,21 @@ def get(self): body_token['redirect_uri'] = settings.redirect_uri_auth body_token['client_secret'] = client_secret_data['client_secret'] - response_token = requests.post(settings.auth_uri_token, body_token) + response_token = requests.post( + settings.auth_google_uri_token, + body_token + ) if response_token.status_code != 200: raise HttpForbidden() response_get_profile = requests.get( - settings.oauth_url_api, + settings.oauth_url_google_api, headers={ 'Authorization': 'OAuth ' + json_library.loads(response_token.text)['access_token'] - }, + } ) if response_get_profile.status_code != 200: @@ -46,15 +54,18 @@ def get(self): profile = json_library.loads(response_get_profile.text) - member = Member( - given_name=profile['given_name'], - family_name=profile['family_name'], - email=profile['email'], - google_access_token= - json_library.loads(response_token.text)['access_token'] - ) - DBSession.add(member) - DBSession.commit() + if 'refresh_token' in response_token.text: + member = Member( + given_name=profile['given_name'], + family_name=profile['family_name'], + email=profile['email'], + google_access_token= + json_library.loads(response_token.text)['access_token'], + google_refresh_token= + json_library.loads(response_token.text)['refresh_token'] + ) + DBSession.add(member) + DBSession.commit() return response_get_profile.text @@ -63,7 +74,7 @@ def post(self): flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file( client_secret_file, - scopes=[settings.oauth_scope], + scopes=[settings.oauth_google_scope], redirect_uri=settings.redirect_uri_auth ) diff --git a/urlshortener/controllers/root.py b/urlshortener/controllers/root.py index 964a145..5d26694 100755 --- a/urlshortener/controllers/root.py +++ b/urlshortener/controllers/root.py @@ -1,11 +1,13 @@ +from hashids import Hashids + from nanohttp import json, RestController, context from restfulpy.controllers import JsonPatchControllerMixin from restfulpy.orm import DBSession -from hashids import Hashids import urlshortener from urlshortener.controllers.auth import Auth from urlshortener.controllers.urls import Urls +from urlshortener.models.member import Member from urlshortener.models.urls import Url from .helpers import template @@ -28,7 +30,25 @@ class Root(RestController): @template('index.mak') def get(self): - return dict() + + if context.identity is None: + return dict( + name='', + family='' + ) + + member = DBSession.query(Member).\ + filter_by(email=context.identity.email).one_or_none() + if member is None: + return dict( + name='', + family='' + ) + + return dict( + name=context.identity.payload['name'], + family=context.identity.payload['family'] + ) @template('successfully.mak') def post(self): diff --git a/urlshortener/document/auth_get_.md b/urlshortener/document/auth_get_.md new file mode 100644 index 0000000..81da1e8 --- /dev/null +++ b/urlshortener/document/auth_get_.md @@ -0,0 +1,27 @@ +## GET + +### GET /auth + +mohammaddddddddddd + +### Query Strings + +Name | Example +--- | --- +state | DAMDzeJImyByVNSdUOVMzy5moo77JZ +code | 4/AAA_ieAH5x0_nAl45U03Iom6Ut2bcMV-oN8pYrnZtGUYKDpovHVmjpCbWu4zBdUYrLtb6JMguFf_E2tyxqLo_vo +scope | https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email + +### Response: 200 OK + +#### Headers + +* Content-Type: application/json; charset=utf-8 +* Content-Length: 495 + +#### Body + +```json +"{\n \"id\":\"105202566366011957392\",\n \"email\":\"mohammadsheikhian70@gmail.com\",\n \"verified_email\":true,\n \"name\":\"Mohammad Sheikhian\",\n \"given_name\":\"Mohammad\",\n \"family_name\":\"Sheikhian\",\n \"link\":\"https:\\\/\\\/plus.google.com\\\/105202566366011957392\",\n \"picture\":\"https:\\\/\\\/lh4.googleusercontent.com\\\/-9gnVQNZquf%20g\\\/AAAAAAAAAAI\\\/AAAAAAAAAD0\\\/g4AAMkzYkpc\\\/photo.jpg\",\n \"gender\":\"male\",\n \"locale\":\"fa\"\n}" +``` + diff --git a/urlshortener/document/auth_post_.md b/urlshortener/document/auth_post_.md new file mode 100644 index 0000000..5b6ef8e --- /dev/null +++ b/urlshortener/document/auth_post_.md @@ -0,0 +1,21 @@ +## POST + +### POST /auth + +redirect + +### Response: 302 Found + +#### Headers + +* Location: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=781215968670-qg3g1nadrm9k2rp8nrhcai73sa5o3fiq.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fauth&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=lUfAQhXtWUwOxWQMfOOU8lz50brI1Y&access_type=offline&include_granted_scopes=true +* Content-Type: text/plain; charset=utf-8 +* Content-Length: 30 + +#### Body + +``` +Found +Object moved temporarily +``` + diff --git a/urlshortener/document/root_get_with_authorization_.md b/urlshortener/document/root_get_with_authorization_.md new file mode 100644 index 0000000..edaa0b4 --- /dev/null +++ b/urlshortener/document/root_get_with_authorization_.md @@ -0,0 +1,38 @@ +## GET + +### GET / + +### Request Headers + +* AUTHORIZATION: eyJhbGciOiJIUzI1NiIsImlhdCI6MTUyOTMyMzUxMCwiZXhwIjoxNTI5NDA5OTEwfQ.eyJlbWFpbCI6Im1vaGFtbWFkc2hlaWtoaWFuNzBAZ21haWwuY29tIiwibmFtZSI6Im1vaGFtbWFkIiwiZmFtaWx5Ijoic2hlaWtoaWFuIiwiaWQiOjEsInNlc3Npb25JZCI6MSwicm9sZXMiOlsiYWRtaW4iXX0.xgvNS9b9Sup_iA-4IMPRCDmXb75KQZf3yYkfSlSC_HM + +### Response: 200 OK + +#### Headers + +* X-Identity: 1 +* Content-Type: text/html; charset=utf-8 +* Content-Length: 506 + +#### Body + +``` + +Url shortener + +
+

Profile: mohammad sheikhian

+
+ Iuput url: + + + +
+ + +
+ + + +``` + diff --git a/urlshortener/document/root_get_without_authorization_.md b/urlshortener/document/root_get_without_authorization_.md new file mode 100644 index 0000000..325b178 --- /dev/null +++ b/urlshortener/document/root_get_without_authorization_.md @@ -0,0 +1,33 @@ +## GET + +### GET / + +### Response: 200 OK + +#### Headers + +* Content-Type: text/html; charset=utf-8 +* Content-Length: 489 + +#### Body + +``` + +Url shortener + +
+

Profile:

+
+ Iuput url: + + + +
+ + +
+ + + +``` + diff --git a/urlshortener/document/root_post.md b/urlshortener/document/root_post.md new file mode 100644 index 0000000..64bb3ad --- /dev/null +++ b/urlshortener/document/root_post.md @@ -0,0 +1,36 @@ +## POST + +### POST / + +### Form + +Name | Example +--- | --- +url | www.varzesh3.com + +### Response: 200 OK + +#### Headers + +* Content-Type: text/html; charset=utf-8 +* Content-Length: 414 + +#### Body + +``` + +Url shortener + +
+

Successfully

+

Shortener + + http://localhost:8080/urls/zK +

+
+ + + + +``` + diff --git a/urlshortener/document/urls_get_.md b/urlshortener/document/urls_get_.md new file mode 100644 index 0000000..003c40a --- /dev/null +++ b/urlshortener/document/urls_get_.md @@ -0,0 +1,19 @@ +## GET + +### GET /urls/zK + +### Response: 302 Found + +#### Headers + +* Location: http://www.varzesh3.com +* Content-Type: text/plain; charset=utf-8 +* Content-Length: 30 + +#### Body + +``` +Found +Object moved temporarily +``` + diff --git a/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc b/urlshortener/makomodules/__pycache__/index.mak.cpython-36.pyc index b868473a217d5a01baa3ffb23abeced22f969988..59cdc1d89f0e051b510be6bbdc61ed4ef0eb38e3 100644 GIT binary patch delta 474 zcmYk2ze~eV5XavoFE24#b*U9y3Jy{QLvbsj4ptDg3Pq3#hR~$HNSg8zP)mwK=MFV4 z?k+Aa3hJLAj&AQ?@IUC}wUr{r_wMt)cih2y*T1Iq%|t@qK3cuFV}1Reb)MhmzCZhq zm0Oh%qN5H`K^s#<8l(YT(vjMip%j4)J?O~j%C;2JuGFC;mPf20D>%y{X45VJiCD-Y zq%qsd#6$Y?*s$7aadc_Dp>_$7b7GSs$!LWP2(4vR9g9~3L7SH62v)JYx_i@pi0jZ> ztYx=PxnHTfPA)xwv~>c6Y#Fue%MTO)v^Xbk+{#ra6jNt~z5M<`A-^Zs6|aX57jh7C zp_?tgWmY(@&Zt5y`_0g~4*BpOO1fztn`O&&9X@8)$5+5LZ1Sne#CY8k;YqXxhepl! z9K-W#mgiZvan=7=iGSp^^b&Rn=pdnHFf@!|9*Rml6=&$O!sl@)KB1|^EP`O;i={ZA WyHJW>=}t0*{^-)bv=D2G0m)w*(0JkJ#V)1qRf)iqFY??1^ET>X+?>-shX^} z*pu_~N>VFIir9e;0LsPt#wRD{\nUrl shortener\n\n
\n
\n Iuput url:\n \n \n \n
\n \n \n
\n\n\n') + __M_writer('\nUrl shortener\n\n
\n

Profile: ') + __M_writer(str(name)) + __M_writer(' ') + __M_writer(str(family)) + __M_writer('

\n
\n Iuput url:\n \n \n \n
\n \n \n
\n\n\n') return '' finally: context.caller_stack._pop_frame() @@ -26,6 +32,6 @@ def render_body(context,**pageargs): """ __M_BEGIN_METADATA -{"filename": "/home/mohammad/workspace/urlshortener/urlshortener/templates/index.mak", "uri": "index.mak", "source_encoding": "ascii", "line_map": {"16": 0, "21": 1, "27": 21}} +{"filename": "/home/mohammad/workspace/urlshortener/urlshortener/templates/index.mak", "uri": "index.mak", "source_encoding": "ascii", "line_map": {"16": 0, "23": 1, "24": 5, "25": 5, "26": 5, "27": 5, "33": 27}} __M_END_METADATA """ diff --git a/urlshortener/models/__pycache__/member.cpython-36.pyc b/urlshortener/models/__pycache__/member.cpython-36.pyc index d545b9bb62627f6946deaf2c3fe8909ba90caebb..f3cbb93f7fb2c9eb07e4c2d60b0870a77228a6ff 100644 GIT binary patch delta 139 zcmZo-UB=33%*)I5&Oj-8+C@T2X3oMtn(rc52>Ah9Xf01|TtcCu0ydACSqx$il?O$TL}l$wdny1(pX9 bVnE^+hfQvNN@-529V3ue%mO3?7zLOCd1WBi delta 80 zcmZ3++QiCf%*)Gl%S$dgb0X(#M!$(meJB2NV&s|Z$XLy}lA%b1fdNQNzReiK$pd6^ YFtRZ5O}1ci5r9a5WkH1KUrl shortener
+

Profile: ${name} ${family}

Iuput url: diff --git a/urlshortener/tests/helpers.py b/urlshortener/tests/helpers.py index 919f1a7..430e907 100755 --- a/urlshortener/tests/helpers.py +++ b/urlshortener/tests/helpers.py @@ -11,6 +11,8 @@ client_secret_file = join(abspath(join(dirname(__file__), '..')), 'basedata/client_secrets.json') +document_directory = join(abspath(join(dirname(__file__), '..')), 'document') + class BDDTestClass(WebAppTestCase): application = Application() diff --git a/urlshortener/tests/test_auth.py b/urlshortener/tests/test_auth.py index 69a485f..b488772 100644 --- a/urlshortener/tests/test_auth.py +++ b/urlshortener/tests/test_auth.py @@ -3,7 +3,7 @@ from bddrest.authoring import then, response from restfulpy.testing.mockup import http_server -from urlshortener.tests.helpers import MockupApplication +from urlshortener.tests.helpers import MockupApplication, document_directory from nanohttp import RestController, settings, json, context, HttpBadRequest, \ HttpUnauthorized @@ -17,7 +17,9 @@ def post(self): return dict( access_token='ya29.GlzVBYKNxVGGMl6euQ6U-_QIhylTdqoYXxW3MHOXL7\ r6WmO2xx_wkBht6TT6OIP0eoDjcQIm3Y6JXmAExohf7GU3xuhs6cF9EcL5DbT\ - owmmH-nBlVE6Uop2IftiFtQ' + owmmH-nBlVE6Uop2IftiFtQ', + refresh_token='1/Yn_cvrK7qeJ9yNQcl77dHNqrqO1Q_ySU5MhibfXkvOo3\ + vZct44-X5rUdvCRM9jJE' ) elif '5/AAA' in context.form.get('code'): return dict( @@ -78,6 +80,7 @@ def test_auth_post(self): description='redirect', url='/auth', verb='POST', + autodoc=f'{document_directory}/auth_post_.md' ) with self.given(**call): then(response.status_code == 302) @@ -85,8 +88,22 @@ def test_auth_post(self): def test_auth_get(self): with oauth_mockup_server(Root()): settings.mockup_server_url = settings.tokenizer['url'] - settings.auth_uri_token = settings.mockup_server_url + '/token' - settings.oauth_url_api = settings.mockup_server_url + '/profile' + settings.auth_google_uri_token = f'{settings.mockup_server_url}' \ + f'/token' + settings.oauth_url_google_api = f'{settings.mockup_server_url}' \ + f'/profile' + + call = dict( + title='GET', + description='incorrect code or state or scope', + url='/auth', + verb='GET', + query={ + 'codew': 'incorrect' + } + ) + with self.given(**call): + then(response.status_code == 400) call = dict( title='GET', @@ -134,7 +151,8 @@ def test_auth_get(self): 'scope': 'https://www.googleapis.com/auth/userinfo.profile' ' https://www.googleapis.com/auth/plus.me ' 'https://www.googleapis.com/auth/userinfo.email' - } + }, + autodoc=f'{document_directory}/auth_get_.md' ) with self.given(**call): then(response.status_code == 200) diff --git a/urlshortener/tests/test_root.py b/urlshortener/tests/test_root.py index b663f34..8d3fc99 100644 --- a/urlshortener/tests/test_root.py +++ b/urlshortener/tests/test_root.py @@ -1,18 +1,42 @@ import unittest from bddrest.authoring import then, response +from restfulpy.principal import JwtPrincipal -from urlshortener.tests.helpers import BDDTestClass +from urlshortener.tests.helpers import BDDTestClass, document_directory class RootTestCase(BDDTestClass): def test_root(self): + + principal = JwtPrincipal(dict( + email='mohammadsheikhian70@gmail.com', + name='mohammad', + family='sheikhian', + id=1, + sessionId=1, + roles=['admin'] + )) + self.login_token = principal.dump().decode("utf-8") + + call = dict( + title='GET', + description='', + url='/', + verb='GET', + autodoc=f'{document_directory}/root_get_with_authorization_.md' + ) + with self.given(**call): + then(response.status_code == 200) + + self.login_token = None call = dict( title='GET', description='', url='/', verb='GET', + autodoc=f'{document_directory}/root_get_without_authorization_.md' ) with self.given(**call): then(response.status_code == 200) @@ -24,7 +48,8 @@ def test_root(self): verb='POST', form={ 'url': 'www.varzesh3.com' - } + }, + autodoc=f'{document_directory}/root_post.md' ) with self.given(**call): then(response.status_code == 200) diff --git a/urlshortener/tests/test_urls.py b/urlshortener/tests/test_urls.py index d133ba1..1c7df41 100644 --- a/urlshortener/tests/test_urls.py +++ b/urlshortener/tests/test_urls.py @@ -2,7 +2,7 @@ from bddrest.authoring import then, response -from urlshortener.tests.helpers import BDDTestClass +from urlshortener.tests.helpers import BDDTestClass, document_directory class UrlsTestCase(BDDTestClass): @@ -14,6 +14,7 @@ def test_urls(self): description='', url='/urls/zK', verb='GET', + autodoc=f'{document_directory}/urls_get_.md' ) with self.given(**call): then(response.status_code == 302) @@ -22,7 +23,7 @@ def test_urls(self): title='GET', description='', url='/urls/lP5', - verb='GET', + verb='GET' ) with self.given(**call): then(response.status_code == 400) @@ -31,7 +32,7 @@ def test_urls(self): title='GET', description='', url='/urls/lP', - verb='GET', + verb='GET' ) with self.given(**call): then(response.status_code == 404) From d74ecb3aa829313e6aebf657ccd6c7efc303562f Mon Sep 17 00:00:00 2001 From: mohammad Date: Tue, 19 Jun 2018 12:01:46 +0430 Subject: [PATCH 16/16] return authorization --- .idea/workspace.xml | 584 ++++++++---------- data/logs/urlshortener-error.log | 50 ++ data/logs/urlshortener.log | 50 ++ urlshortener/controllers/auth.py | 5 +- urlshortener/document/auth_get.md | 25 + urlshortener/document/auth_get_.md | 27 - .../document/{auth_post_.md => auth_post.md} | 4 +- ...ion_.md => root_get_with_authorization.md} | 2 +- ..._.md => root_get_without_authorization.md} | 0 .../document/{urls_get_.md => urls_get.md} | 2 + urlshortener/tests/test_auth.py | 14 +- urlshortener/tests/test_root.py | 4 +- urlshortener/tests/test_urls.py | 8 +- 13 files changed, 406 insertions(+), 369 deletions(-) create mode 100644 urlshortener/document/auth_get.md delete mode 100644 urlshortener/document/auth_get_.md rename urlshortener/document/{auth_post_.md => auth_post.md} (86%) rename urlshortener/document/{root_get_with_authorization_.md => root_get_with_authorization.md} (76%) rename urlshortener/document/{root_get_without_authorization_.md => root_get_without_authorization.md} (100%) rename urlshortener/document/{urls_get_.md => urls_get.md} (88%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 65e13e9..50032f8 100755 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,23 +5,16 @@ - - - - - - - - - - - - + + + + + @@ -34,7 +27,7 @@ - + @@ -45,9 +38,10 @@ - - + + + @@ -63,13 +57,13 @@ - + - + - + @@ -92,102 +86,77 @@ - + - + - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + - - + + + + + + - - + + - - - - - - - + + + - - + + - - + + @@ -255,11 +224,11 @@ @@ -315,15 +284,6 @@ - - - - - - - - -