From bf23afc5ec6f8020dae7024ac849a74973acb9a3 Mon Sep 17 00:00:00 2001 From: Oly Date: Thu, 29 Sep 2016 17:00:20 +0100 Subject: [PATCH] move tests --- main.py | 13 +++ setup.py | 26 ++++++ tests/__init__.py | 0 tests/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 111 bytes tests/__pycache__/base.cpython-35.pyc | Bin 0 -> 821 bytes .../test_add_badge.cpython-35-PYTEST.pyc | Bin 0 -> 3429 bytes .../test_create_users.cpython-35-PYTEST.pyc | Bin 0 -> 3003 bytes .../test_data.cpython-35-PYTEST.pyc | Bin 0 -> 1316 bytes .../test_oauth_login.cpython-35-PYTEST.pyc | Bin 0 -> 1559 bytes .../test_users.cpython-35-PYTEST.pyc | Bin 0 -> 1510 bytes tests/base.py | 19 ++++ tests/test_add_badge.py | 60 ++++++++++++ tests/test_add_badge.pyc | Bin 0 -> 2929 bytes tests/test_create_users.py | 88 ++++++++++++++++++ tests/test_create_users.pyc | Bin 0 -> 2973 bytes tests/test_data.py | 31 ++++++ tests/test_data.pyc | Bin 0 -> 1330 bytes tests/test_oauth_login.py | 38 ++++++++ tests/test_oauth_login.pyc | Bin 0 -> 1486 bytes tests/test_simple_querys.db | 0 tests/test_users.py | 37 ++++++++ tests/test_users.pyc | Bin 0 -> 1402 bytes website/main.py | 87 +++++++++++++++++ 23 files changed, 399 insertions(+) create mode 100644 main.py create mode 100644 setup.py create mode 100644 tests/__init__.py create mode 100644 tests/__pycache__/__init__.cpython-35.pyc create mode 100644 tests/__pycache__/base.cpython-35.pyc create mode 100644 tests/__pycache__/test_add_badge.cpython-35-PYTEST.pyc create mode 100644 tests/__pycache__/test_create_users.cpython-35-PYTEST.pyc create mode 100644 tests/__pycache__/test_data.cpython-35-PYTEST.pyc create mode 100644 tests/__pycache__/test_oauth_login.cpython-35-PYTEST.pyc create mode 100644 tests/__pycache__/test_users.cpython-35-PYTEST.pyc create mode 100644 tests/base.py create mode 100644 tests/test_add_badge.py create mode 100644 tests/test_add_badge.pyc create mode 100644 tests/test_create_users.py create mode 100644 tests/test_create_users.pyc create mode 100644 tests/test_data.py create mode 100644 tests/test_data.pyc create mode 100644 tests/test_oauth_login.py create mode 100644 tests/test_oauth_login.pyc create mode 100644 tests/test_simple_querys.db create mode 100644 tests/test_users.py create mode 100644 tests/test_users.pyc create mode 100644 website/main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..0a4d1b5 --- /dev/null +++ b/main.py @@ -0,0 +1,13 @@ +import os +import sys +#sys.path.insert(0, os.path.abspath('../../scaffold/scaffold/')) +#sys.path.insert(0, os.path.abspath('../../scaffold/')) + +#sys.path.append(os.path.abspath('../../scaffold/scaffold/')) +#sys.path.append(os.path.abspath('../../scaffold/')) + +from website import index + + +if __name__ == '__main__': + index.app.run(host='0.0.0.0', port=5001, debug=True) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..7f4ede3 --- /dev/null +++ b/setup.py @@ -0,0 +1,26 @@ +import os +from setuptools import setup, find_packages + + +def read(fname): + return open(os.path.join(os.path.dirname(__file__), fname)).read() + +setup( + name = "mhackspace", + version = "0.0.1", + author = "Oliver Marks", + author_email = "contact@maidstone-hackspace.org.uk", + description = ("Maidstone Hackspace website"), + license = "MIT", + keywords = "templating web", + url = "https://maidstone-hackspace.org.uk", + packages=find_packages(), + + long_description=read('README.md'), + classifiers=[ + "Development Status :: 3 - Alpha", + "Topic :: Utilities", + "License :: OSI Approved :: MIT", + ], +) + diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/__pycache__/__init__.cpython-35.pyc b/tests/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3802a6aa7c9fd4daddc4f8c44712e02acfa0921 GIT binary patch literal 111 zcmWgR<>ks=_d1*b2p)q77+?f49Dul(1xTbYFa&Ed`mJOr0tq9CUo!eBMfrKD`o%@b m`X#BwCB^#j@tJvQz&BE})za(akRg9WugV$i9d-zQ8>lBIak^kd~TSa?#sSgm-lD@Fv$R!Efc=cq>NV GmH!_|skDXw literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_add_badge.cpython-35-PYTEST.pyc b/tests/__pycache__/test_add_badge.cpython-35-PYTEST.pyc new file mode 100644 index 0000000000000000000000000000000000000000..194621f8d9c7e97ca21e48d62d0a9ddc5c74f5cd GIT binary patch literal 3429 zcmcImOK;p%6h8L6XPjh`w9}>yZD~cRX*GQyc2QLdgk2V-6_O=ndF(q=r}j9#*F#AJ z8-ifX&)^sEU%X{QBoOUwNCUK&3ww> zAK_7dfCTs%6cIT_!JBkYqJuIyl|oV_r&{nea%u%%C#SA?lcEO2O>&xK@Qx*lS`=I4 zSowRIq7{l)$yud%jhr=#+vKzdq(sgI5*I0G&~uaI?KburfJi`0KM9@@%ZMoP$B zqTGQ@Mu#H6{$|kQQ=SNwKK7LGS&iaT8Z+tuj3@%(nDi4-A3?#-q#q$Kv0sBSTkVu7 zKy<2_2UB>1!_;7_c@Bgv3M|bdOe++uYQDic@7rrxGuH=ZD&H7u!T%LJtd;r;B*o95 zZ;4KT3lqL1BQ5bC5R&T_8gybTNK3R#T3#xxER|N5N^28orO*MUX_G-i=*ODOj==>0 z!SXR{ehkRnw^#PE^3aP#R*gm66Vj>nJpVcVYpL-3XJG37GcS~}H*^{)prS?+!Um!$ zMe50;tgeychCycB&uSVF%s$;#qwz=eh zcQ8-uLdNlxvvrv`h4ZV5M|=1tnB2o~EK-X7tkWG%9^@%xj{RERJLRRPZ2BpC6{>S> zg6f~W7{N-3GJmG>IYRQHgi?16)8C~0!qhqCC-C?l8~hV^@LZE?7RuQaN+?pge$7K^ zJQt}wnVZkjNSgy(<39mTUV;_!GLs1mHRj|tWbfg56WI1eBz*1}Zwa1Kt370`8o1>7g~rGk5# z;x1>I8~!>9H3MabmSM>i31*wJ+hmG72M9GL>164v*Z)+m?HH#Bu57 z$sH!ct`sk2n2M}15oNVP*2H3-?s_sa6P1|$VVJTsYxzl}D`qlOk}III`cm{1 zcI*1dupbU2huPUIgn^fOU5!DNLyqr7Qiq3Ikj9;JS@~YSpF{!nkfN*CFzMlvEgQUF zlMh$e2!bZB>ue5=%47JKVYvt73eSMsoyL^Np_qd578XY&dxsOn-`Co&HB%O{QJ}GI?>;> z^(%uv!K?lPiSTDpLgZNmZ_~I$<1%?Wg``4WrQoaNRSVuB&oR7BNsT6T^6E5ckk=rK z_bpN4(xgdVGar{J*`>)Id3*VIhmw7ow8(3bB`%R@()fU$T4a46;kYXOian|%92y_e z(-L`?NgPq+&_kQ#pGJO#q8deYdPe!6seFwCj42T)M6?le-x;Z zJ_tu5e0Wyav9zN^mc{8%fv>3;%jQZ*4D6^M@}9-d26KW}!9o%RZl29BMmFEsE3xTO z+3;nG0At1QU;v$Cco=AI&iW8GC~}P)cs428H9QpdVAH;K?+cZE9Vl@(7>dxs!TjU@ zJ9tm=s+%Ag(bxhOG%jwF-y^mSs<_C#PG!}50K?kAqMc5&wu*0~E?o z|JerYDAk=U^#RYFnq2`_9I~PN3{C}vY}cw-tM)dO-3u11;blkH@EUkO0|R*BW5nkZ zi!zHrW~kw5pl$q}dph^=V~gT)4m$z%T2EIKkxfLLYKJe(P^_AK{t1(AIGsobhe$qB zB4tT7K(tdtZ>KEzMg}`w$xW9oBpq8eS+hD@mc)LsrHHdFa5n2MMrVM1-VmMF2U50hn!E(^3i!zb=xswM4|(+#Zt^kLj)?rrrOX`Mv`r5aTfEE5TQYSD;al~&2F>2#S&js%bHdrI|+AWB~YNw~|IMUXq# z95)hK1>yWOq2rd^s#|mS@zmXlnd7r3L7d{eN`F2W2>D&-s&@MGI6>qo?Vik*{(5xH zpDo#M-8}!}Y1)-yA@Px+Yip6N7P2}Pv$`KhZBLahsii_EP2-HEUTY!b!PZ)wP6d^f~^v+D; z(?~l!#Zv8XOr7#Pqa#0Lr80wX5rW$JJom^Kd@WO}T)IS8E!RG>_bq;!_O;ut^*=%V Bsc`@R literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_data.cpython-35-PYTEST.pyc b/tests/__pycache__/test_data.cpython-35-PYTEST.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35885466f32baa67873e2793189023cdfc6eeea3 GIT binary patch literal 1316 zcmZuw&2Aev5FYNXR;xctmR;3JnjQ=6MS6jv2+*Dlq&_6zMWB|HvnzhGGJI0>v5dvlAPE zoC$zYqEwC>FpM=;Nh$*AR9g@NYqmV8?)8fgFRJ z!0%Yg3y^0Zryjqg0&mjUC#)8(Q|3leZAGganP*KJxW!JD%7{j-YhmqeW#oD1Ok8N#mg~!|W?k-mu zB|?K9VurxcT4YcTB(!IWmDDgBgl%YG%Pzik1jj(y<-_}ftkBum0 zRk%3YS9zw~jAElQU1;m3o_V^!nh?)v2&Ga@~T`KbxY0W22Yghcia#U)AqG6h8ho_?r2@omU%<8 zq5It^tF%@b1+yj~=KNNf4|l5FEiHBeMn9fviExoGY$mqbO3P(d8MX8;jSX??omc;} zNIOtXWnzkbcB?k@x53lp7MrwBF~=QAd;L3@?~pgI$xyF&U7pEEy=P8Z{#aD9)#@iw a+tR5q%;5@~Y|LhC5zN@k&nX*3fgc5FLNib`qyeOIx)9p$fP}NQs0vB2-ZcZV^(EkbJQm?>gPovBR!Sn_kO5 z;lzb22mZ-kIaT}vPR!VKmC^zd!p=_K&hCuoz5UqkcH76FzrX!x0epj{$40!5O?^ef z@Mk~@5Eu_OmF*o3qNvo-{6Fesx1X$NLL1b*GOA??C! z6@t~ezXItR%z6;?z<9+lw+kOI%mwbjbREtu2sVJ<0p`K63Gz$j-vrhI)`oL146OOE z-?=~nFzOq+!*~*vX~9HXVAoT;C`2|QUoMQoT|VH+4~;#3%ci#2%Kf5TPrB2xTyG~uyNA#Zj2%6On0`pYpgYII3YQo+h6_uHxJukA_U<86PSc4-2HCD!Uvym@o7L z8VVC$#7AM4XJJ#)3x8&7JoT_PLKawZbN zS;hLo!YZ%!Lpf)^?1w+`->&#yi=hR+cZ2uCo4jvCjrxxE!jN`z80vONWtJ&nKMdcM zQCg449%h&8WJuqoC8-vN)a%a{Ev?Tt&3;x(YO zzdv7uSH0bEz952wNFk|0*-6NwjuZe6*w+xXfTTZRSc_YN7CeW}+ak?!g@zZU%9lC1N6JA@p4pM@f>W484*Ma5bXJjPc@-HqHqACXB}FW9*T< q2Q-5S%WXfgc5S_JM+i{&X4NzKDswy~Hl@bX!B2-ZcZV^(EkbJQmd)+!XcG$IPQ;AbK z@kbEiAMKS>5BvcnBxdY7^b5FPXD74c-RF64X1(6+IzOH7Z$9Y&-{8_^pudMhenk`G zk3k0Dv)0#OqQk@hf2oa_;G3;)fp4|G4ZdCb8e|=qI^a9N2vLV@8Ky4yZZkI^>%w#e z{1sp?W5hM#BQ7(6+b~&$GadXM@HL1nc&mZNZFKW9!~k` zy-|_x@RL-QVP5XEVP(%m@ji{YIHwmWiyj1N?CHXwc|Q_7M8ZW_l}ABV9HzOl_z91y zlA{`iJfo*dE5B$oWu;Xjmc@S=(AGIhf7W0}2KSFQcO%FY=&G<^r7FOgPd; z1I%S6-lxOMq743x@PBj@CZ?c_JdNH85?@eGqJ!o_7~xQ0nF36>Tq2aI9{FN!V#KUr3hxJ;AD|@NXTQ~SWyvhH@u90UdI|!(sgFra}C0k|W zyFu`-3bW>kSVeTPM&>@5-=(QNs*hMgL*sSY=1)+QzQX$6rK k8w6w!r`v>3_R~hhX9OqvXk6&S2A;p3)?+<=bJJzN04zdqk^lez literal 0 HcmV?d00001 diff --git a/tests/base.py b/tests/base.py new file mode 100644 index 0000000..b3c1adb --- /dev/null +++ b/tests/base.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import os, sys +import unittest +import random +from collections import defaultdict + +sys.path.append(os.path.abspath('../')) + +from config import settings +from scaffold.core.data.database import db +from data import site_user +from tests.test_data import clean, populate + + +class TestBase(unittest.TestCase): + def setUp(self): + clean() + populate() diff --git a/tests/test_add_badge.py b/tests/test_add_badge.py new file mode 100644 index 0000000..7c2f092 --- /dev/null +++ b/tests/test_add_badge.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import os, sys +import unittest +from collections import defaultdict + +from website.config import settings +from website.data.badges import create_badge, assign_badge, remove_badge, fetch_badge, fetch_user_badges_grouped + +from scaffold.core.data.database import db +from tests.base import TestBase + +import unittest + +class TestBadges(TestBase): + + def setUp(self): + super(TestBadges, self).setUp() + create_badge().execute({'name': 'member'}) + create_badge().execute({'name': 'backer'}) + create_badge().execute({'name': 'teacher'}) + create_badge().execute({'name': 'chairman'}) + create_badge().execute({'name': 'treasurer'}) + create_badge().execute({'name': 'secretary'}) + assign_badge().execute({'badge_id': '1', 'user_id': '1' }) + assign_badge().execute({'badge_id': '2', 'user_id': '1' }) + assign_badge().execute({'badge_id': '3', 'user_id': '1' }) + + def testFetchUserBadges(self): + self.assertTrue([a for a in fetch_badge({'badge_id': '1', 'user_id': '1' })]) + + def test_badge_grouping(self): + self.assertEquals(fetch_user_badges_grouped(),{1: [1, 2, 3]} ) + + def testSelectingBadges(self): + # this record should exist + self.assertTrue([a for a in fetch_badge({'badge_id': '1', 'user_id': '1' })]) + + # these don't exist + self.assertFalse([a for a in fetch_badge({'badge_id': '10', 'user_id': '10' })]) + self.assertFalse([a for a in fetch_badge({'user_id': '10'})]) + + def assignBadgeToUser(self): + assign_badge().execute({'badge_id': '1', 'user_id': '1' }) + assign_badge().execute({'badge_id': '1', 'user_id': '1' }) + assign_badge().execute({'badge_id': '2', 'user_id': '1' }) + assign_badge().execute({'badge_id': '3', 'user_id': '1' }) + + def testAddingBadges(self): + create_badge().execute({'name': 'badget'}) + self.assertEquals(fetch_user_badges_grouped(),{1: [1, 2, 3]} ) + + def testRemoveBadges(self): + remove_badge().execute({'id': '1' }) + remove_badge().execute({'id': '2' }) + remove_badge().execute({'id': '3' }) + +if __name__ == '__main__': + unittest.main(buffer=False) + diff --git a/tests/test_add_badge.pyc b/tests/test_add_badge.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be19b031c69c060134835fccc8ee75b58be06bcd GIT binary patch literal 2929 zcmbVOU2hvz5S?9r#7>;zHiee2NJSM`0!6e`5f7+>07bmy;U*DcC9u}J*Ul!pcDi?s zhy*W`Kf#~ipYXu%;E_ij;GDUM?YJo<*xuQD=YGwcIWyO_Ki5}}fBoaDM9w}nyg$a{ zeuqf$3nUkbX6-q#o?>8lXNs6vSUEhZ-{>&AzT^YiVmi#R8Oyuk6rr2AO zw&ggK@;9-e9BoLtD)u&pgJ7(l?Df{*RrWVNyS)I-iv83M<7r-{SyFjr3rc6JDjSbn zufb^@h@`Y}W&49T9a&Yx&Sj(Vf}*s=at*T{0YvUntwpf+e+@ z@VpuZT{au$U8aVym#Ja;xw>&~34Cvn2-|$Eo*A?_y7sT5o#oL~WUsdl|97hX0L&;&Bl|?+R+8h9V+_c0Hd(MJRRa~9|QIQ8aU76L- zQr$;Mf;NXAs{EkG<16yffitDiUA1eggA+sc=u-Q=O{SGKH7GopXsomOu!py(a5vGa zz^{Isrk;#jC#U8Pw72lM+Yl0L1a}s`o55zF%-~71MVav-8sNl{$Ot31kWcXio~VCJJ8@= zSc5RXVDeA%NHc)Tk*;X}gZF#H&AdjzSz41lcuxSGorm4Lj^Qg~w`X&ku!j4n-^W@< zuq1p`do+(cDX2t-Pb_hW`O)Pp4z4kJ2I4FOF0S=OZk``L8ED)xM23lIUWV{6C{%aZ zCGD<8CZ-qg#9gIG>`#~q??LHW5Q40pW%h+sc#Ofh%Wwt1vuf+(@2fvE1c?EU8=4_Z z`ST1>m(EHguT7)(?^4Dv0$RNc9W!rIaN#vv>|#1I{gX7E1^gj&j(ZDg*z-5qms~On z_XY1Rs28rU#o0cMiljd4DW8%&2oTlUCX#be^Y6|6mVI(ItGDuzo_J(=X1sFSfXm?OGDG8qrEks(w3 zf3&!Yw+33iJykRj6jVa5e5qI-ToMn5lRVu@CZ*j)MFFH|&L7ygT75?{;M1& literal 0 HcmV?d00001 diff --git a/tests/test_create_users.py b/tests/test_create_users.py new file mode 100644 index 0000000..8e4c1d3 --- /dev/null +++ b/tests/test_create_users.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import os, sys +import unittest + +from werkzeug.security import generate_password_hash, check_password_hash + +from website.config import settings +from website.data import site_user +from scaffold.core.data.database import db +print(settings.database) + +class TestBasePage(unittest.TestCase): +#~ class TestBasePage(TestDataSetup): + + def testCreateBasicUser(self): + """User has not signed up yet but has interacted with the site, donated perhaps ?""" + site_user.create_basic_user().execute({ + 'first_name': 'myfirstname', + 'last_name': 'mylastname' + }) + + def testCreateNormalUser(self): + pw_hash = generate_password_hash('letmein') + site_user.create().execute({ + 'username': 'test@test.com', + 'first_name': 'myfirstname', + 'last_name': 'mylastname', + 'password': pw_hash + }) + + def testCreateDuplicateUsers(self): + pw_hash = generate_password_hash('letmein') + site_user.create().execute({ + 'username': 'test@test.com', + 'first_name': 'myfirstname', + 'last_name': 'mylastname', + 'password': pw_hash + }) + + site_user.create().execute({ + 'username': 'test@test.com', + 'first_name': 'myfirstname', + 'last_name': 'mylastname', + 'password': pw_hash + }) + + def testRegisterNewUser(self): + pw_hash = generate_password_hash('letmein') + site_user.create().execute({ + 'username': 'new_user@test.com', + 'first_name': 'myfirstname', + 'last_name': 'mylastname', + 'password': pw_hash + }) + + user_details = site_user.get_by_username({ + 'username': 'new_user@test.com'}).get() + self.assertTrue(user_details) + self.assertTrue(pw_hash == user_details.get('password')) + self.assertTrue(user_details) + + + def testRegisteringExistingUser(self): + pw_hash = generate_password_hash('letmein') + site_user.create().execute({ + 'username': 'test@test.com', + 'first_name': 'myfirstname', + 'last_name': 'mylastname', + 'created': '', + 'password': pw_hash + }) + + def testChangeUserPassword(self): + site_user.change_password().execute({ + 'id': '1', + 'password': 'password hash' + }) + + def testUpdateLastLogin(self): + site_user.update_last_login().execute({ + 'id': '1' + }) + + +if __name__ == '__main__': + unittest.main(buffer=False) + diff --git a/tests/test_create_users.pyc b/tests/test_create_users.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b5277b8dfeab64a25067953f6ce0e1810574d69 GIT binary patch literal 2973 zcmb_eU60#T5FI<;`_XP`Ra#L{M1_49v6B(@Ao(#OxabE_$wtdNJlGkNWm%Jf^hIrgrldLIuO9ri~Uze;cc}E7Fs^5@o zOY&_QY>Q`Fa=arCze}28d^z5g5l(5zuOcr*ei~d7b6JwMJoTmgU03W$(h+k7)1FtT znU8y0Fgg7PfBl}1rn?R?Hiao8XTn)z?P6Lc;UuyXcNJ6d#Kccu9`AYF*M_jhxwIJD zYNW%F6k6uil+_SVNQQ0)uOnmKy~vuwXl&L%Qqw(ddkA3wp~41-h?z&v1~o~1ZPW=C zM;emUwb7KMp^cUR5>B-xc-(72S4_=(>Ui$sv7bRWkzT; zE8LDwn`b7TJ5xbV$F0dmJ-kJQy@r-U7{b+d#>wu_mKtbI+*h@TQX13uJ*prY;$QY! zo?^;~t}(rf4lqTe0N!&?oJVAdZ%tCf3lP_UFIo+}5U!ToIYEfqE3^e@)6c$|pBa~% zw6MF>3TqB1_Ty=;T%)nXDWE|C-3>^=fctg9DR+A`FTk_Hi|Z?g14ckuACQrH=xm`} zzX(dF@Kq@Fr)3^xgy}=*vQ#MEjz^&QdmSuX!1n>`ov{rr(Z1I}4K8E&JTL=>{S^=c zlI|7wf)BV3&)e8_153`>_04>ir7_q`=xi5rmMLfxyY1RbD3bMS%Ke7Udr*!j)+Gf8 zD{g|f#|<*}xi2T+ZBtG_U}S<-$73HWKv|3;vu?~)on%eo3TPr#n1$ZTHG|&*wz3)f zD#o6H?HHr6ap7>O`ZP}v4vcB~K)N=iJ1Xazf<}n9;Ti2*KU*5tDNu-MTrb+Kv^H`75UOJ2d9Z%>C>dg zVl=7TBtNQ3LH5Lxs2HCW_UaB(ji$hhu!6T!udiyNdxxv9gdZ?d)dx*`G1b20-Y49; zS#xpk^y*c`mVVLNe(*75z}2tRx%n(%ozps)O~+~R4)&k2`ibg#gp&G*nhtTAWm*v! zuT@B^NT~HT4E1`2VLnafnF+&y`7@xZ;2OnEidz(2iccZVu+-KYt8KtgQk^oSS?jbq zoz5P9Tb<_0ggiz0i|>Fk zb<3&>G9->{T$mxhO;A#cQ92GtBh3@1=h5y&;GBLQ}?fBRIJ&(V(fAjkt?_UGb BHbMXZ literal 0 HcmV?d00001 diff --git a/tests/test_data.py b/tests/test_data.py new file mode 100644 index 0000000..b29bf2b --- /dev/null +++ b/tests/test_data.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import os, sys +import unittest +import random +from collections import defaultdict +from werkzeug.security import generate_password_hash, check_password_hash + +from scaffold.core.data.sql import query +from scaffold.core.data.database import db + +from website.config import settings +from website.data import site_user + +data_first_names = ['ralf', 'teddy', 'sprite'] +data_last_names = ['fuzzie'] + + + +def clean(): + clean_file = os.path.abspath('./data/migrate/clean.sql') + with open(clean_file, 'r') as clean_fp: + sql = clean_fp.read() + query().execute({}, sql) + +def populate(): + site_user.create_basic_user().execute(data={ + 'first_name': random.choice(data_first_names), + 'last_name': random.choice(data_last_names), + 'password': generate_password_hash('test') + }) diff --git a/tests/test_data.pyc b/tests/test_data.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7bba19c58d29702e1246426c14742f687b735f52 GIT binary patch literal 1330 zcma)5OK;Rb4E7}Z?zY`Ns1P9FgmT*6dO`@P2ToKXJrw1#n$Api(@q}EOjNdNPs^Qu z!mr@paO4Mo?R1NfKq3#v_BdmIpFQD^&C%u8?`I0`uMod)@pa!&XnX`%faF0JkchQE zfFxM!AtWK|0oV@YT}Zkh=>HIG5Ar@FeaHup3|emo>=5!1B%{{ug57|849U2)dtf&q z--2YTwfkVVA)i1pL3;pt2zmr_Ou7Sl1Lj!OF6c3Q#!~k{Z?dva#h*r72qgQ7*GVK$ z^&14tq_VMIXUazbIS)|GO<`*3&8(8nU6-|rcJzP=?qb~pSx0?-c(HZZvV(wZ` z7d=;vsh6!uyX*5-A5w6J2^wc=-$AREHudy}H(D=!j{>S1Ls(6lo14sVYp5-Ke2*#O zJqizSA>ab}7qAj=hn^5_F;@Vq0KU9}I{~*C(18`eT>zK`m5Ux^0Jj_?&agcnKB72{ zX!{fQ80GX(OD_-eY)(`hDr;mhbywCCcXdQHc*0aV22e@A@Z^-|j&(v+R;Fm-8L4CP zaESS2RO1aN^CR@~=Cd@j#uJbCW`#fy_dzk@>6h9>S@x=is{#N_4f*Rs%M&Z=6J znKFKYOOzHVTc>n>d+mHk>|*NGZ}$E{Ar(@URb#P$C#XNLI1v*OJwi{+v~xF>j!`s4 z=BW?yGhF7Aq)Kaz@>yB97=10OYg1p|m}Wk8*l`@^C07*lNh9d0EYfTq)6RVIoRVo; zT0K=|ZKm8~?0-8sPci5(>lB2nnV8xf)A40efjN5FKZ~w_933pdt{e;F1ICfkRISp;qEpA-57DmnfS!TetbB))Q#Y6fo>Q(F8w@_r@FeHN3+Ur|96UHOV4 zwHyy93cMds(V?Z2LVbMpTX|8cV-VCZLlw%4OdH zeI&XhdKXQ|tW!3m(}3ome8ervMr1Z*TB*tdI}FDH(telUL8!##HGnpG(iEK8l-t3f z3_8PXtC?#@0)$Ole}q}fCT^UW^F(?_#_?X_%$sCpu5`indkB3h#)u+b1wji56ktak z$^!3nNgsv~GQ}#iuC#q=?wJ@SI#FPG5|EWevQt32B3jmMUp?BrR9>mWurCV^+&$R3 z+BWCbaZ>R%z*b3V803~6>ovg0*}Q&lGvPB>Ovg6!h%{jF9Wm+LB*MB*8a|GTdS)vh zY|c&EuxYgcY-fr*ls9?f?uy4E(9a8Z&Mx@Lay&Pj9>-N(#Y?b@P@udeQ4Rn}ZK#1f z|4ShT)XJu(x+jhoLPI(Y0ana4&elk|C#Z3MZb0s_gn7~}x!({&g8rFUkE9q@sR#4} zMoyo58oVwpIL2k2+1#3}C5x1LvMZiG!_8UtONRfR`F+{jGrzVOQu#<`t}zawyuXie zjH?;P40&UqZ3^jXRHp_BeOt^*cklh_W@%&=W$BR5elQx028&b5#8z?&#-~l5n|Zh? zE~C0@$B@NcxVAzn%b?*u5NTZ$CS_Y!PD>0iZsi9v#aCb_t*hM5w6COx*da~wye=}C zn429DH1TFC-v^C@{1;=n7}ITq;hr7If%}L91C5&Vw-l%uTD?vRXKtv1XYry{@}*}6 Ss#|KJHiJziPv^nbMEwA!wj)sh literal 0 HcmV?d00001 diff --git a/tests/test_simple_querys.db b/tests/test_simple_querys.db new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_users.py b/tests/test_users.py new file mode 100644 index 0000000..92c3214 --- /dev/null +++ b/tests/test_users.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import os, sys +import unittest +from collections import defaultdict + +from scaffold.core.data.database import db +from website.data import site_user + + +class TestBasePage(unittest.TestCase): + + def test_fetch_non_existant_oauth_user(self): + site_user.create_oauth_login().execute({ + 'username': 'Non existant username', + 'provider': 1, + 'user_id': 1, + }) + + def test_fetch_existant_oauth_user(self): + site_user.create_oauth_login().execute({ + 'username': 'nick', + 'provider': 1, + 'user_id': 1, + }) + + def test_update_oauth_user(self): + result = site_user.update_oauth_login().execute({ + 'user_id': '2', + 'username': 'nick_modified', + 'provider': '3', + }) + + + +if __name__ == '__main__': + unittest.main(buffer=False) diff --git a/tests/test_users.pyc b/tests/test_users.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f678161be007d980692ed2184745b1c7647ff437 GIT binary patch literal 1402 zcmb_cO>fjN5FKZ~+bvXli3$l-aLEDf0i>P~LaoHHLf%SMTMO{)j)1jhAvpz-rcHO07K(ir5LtgjD1avl{ob&YQ6VVmX`)GsA zCS?OU52*eu5o5}RWVU!)sZxMU!x4kBKlpPPDmMKlK$<*h3ZL23x6T00kSWC}j4qD@9_|@W zp6E=0(^){44{@e|_E?gv+dg`CLy8v4zGvkN6vs_qV z49~o-KG=-;3>Mq5%>g@! z@+^?Z|77XOjZaVGvMS>x%tdzK!#M|Nq;9JLfB%;@9w1Abo@*E)f$p)Tq1>9Y zh7uY8gqlX#Z>05@1B7Tx>o1h5O`JY36k7c?jEi<%KcF;)HDRnLyt;67YZKA zfnPkUGMihI2~ml7AxzgKrLfIB`=hWeZ2%M69?I0laZB8&zyl6zOZ{s`6!Q`9{KhxJ3rU$*sd7N{XuI-D`dJvF5fwU?LlX_c~PIC--A(19|UKQCSt!gu2-4dCOx%;&= z6DkRJ+c!gA9dW_~?Bh-PE;1nqs6147lN8SUlb_&w*{btOFoVQHHCEffw%YFO?2Oe< D&gKf_ literal 0 HcmV?d00001 diff --git a/website/main.py b/website/main.py new file mode 100644 index 0000000..60c12b4 --- /dev/null +++ b/website/main.py @@ -0,0 +1,87 @@ +import os +import sys +from flask import Flask, send_from_directory +from flask import make_response + +sys.path.append(os.path.abspath('../../../scaffold/')) +sys.path.insert(0,os.path.abspath('../../../scaffold/')) + +from config import settings +import generate +from pages import homepage +from pages import chat +from pages import blog +from pages import members +from pages.contact import contact_page, submit_contact_page + +from pages.core.login_pages import login_pages +from pages.core.authorize import authorize_pages, login_manager +from pages.donate import donate_pages +from pages.google_groups import google_groups_pages +from pages.equipment import equipment_pages +from pages.profile import profile_pages + + +web_app = Flask(__name__, static_folder='static') +web_app.config['PROPAGATE_EXCEPTIONS'] = True +web_app.secret_key = settings.flask_secret_key +login_manager.init_app(web_app) + +web_app.register_blueprint(login_pages) +web_app.register_blueprint(authorize_pages) +web_app.register_blueprint(equipment_pages) +web_app.register_blueprint(profile_pages) +web_app.register_blueprint(google_groups_pages) +web_app.register_blueprint(donate_pages) + +#~ @web_app.route('/static/') +#~ def send_js(filename): + #~ print filename + #~ print send_from_directory('/static_resources/', filename) + #~ path = os.path.abspath('./static_resources/') + #~ print path + 'css/' + #~ return send_from_directory(path + 'css/', 'default.css') + +# local testing server, add your pages here +@web_app.route("/examples/", methods=['GET']) +def examples(): + """temporary for testing / examples""" + return make_response(generate.examples()) + +@web_app.route("/blogs/", methods=['GET']) +def blogs(): + """temporary for testing / examples""" + return make_response(blog.index()) + +@web_app.route("/", methods=['GET']) +def index(): + """home page""" + return make_response(homepage.index()) + +@web_app.route("/members/", methods=['GET']) +def members_index(): + """list of members""" + return make_response(members.index()) + +@web_app.route("/members//", methods=['GET']) +def members_profile(user_id, name): + """members profile""" + return make_response(members.profile(user_id, name)) + +@web_app.route("/chat/", methods=['GET']) +def chat_index(): + """competition page""" + return make_response(chat.index()) + +@web_app.route("/contact-us/", methods=['GET']) +def contact_us(): + """Contact page""" + return make_response(contact_page()) + +@web_app.route("/contact-us/", methods=['POST']) +def submit_contact_us(): + """Contact page""" + return make_response(submit_contact_page()) + +if __name__ == '__main__': + web_app.run(host='0.0.0.0', port=5000, debug=True)