From 37b396dc337011f32ca085d3dbac81c446d2abf2 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Wed, 28 Sep 2011 21:10:07 +0200 Subject: [PATCH] Move unit tests and images to subfolders --- README | 5 ++ gotovienna/tests/__init__.py | 1 + gotovienna/tests/realtime.py | 26 ++++++++++ gotovienna/tests/routing.py | 74 ++++++++++++++++++++++++++++ gotovienna/tests/runner.py | 11 +++++ images/logo.png | Bin 0 -> 2536 bytes images/logo.svg | 112 ++++++++++++++++++++++++++++++++++++++++++ logo.png | Bin 2536 -> 0 bytes logo.svg | 112 ------------------------------------------ tests/realtime.py | 25 ---------- tests/routing.py | 74 ---------------------------- 11 files changed, 229 insertions(+), 211 deletions(-) create mode 100644 gotovienna/tests/__init__.py create mode 100644 gotovienna/tests/realtime.py create mode 100644 gotovienna/tests/routing.py create mode 100644 gotovienna/tests/runner.py create mode 100644 images/logo.png create mode 100644 images/logo.svg delete mode 100644 logo.png delete mode 100644 logo.svg delete mode 100644 tests/__init__.py delete mode 100644 tests/realtime.py delete mode 100644 tests/routing.py diff --git a/README b/README index e225d65..d80b35c 100644 --- a/README +++ b/README @@ -4,3 +4,8 @@ Using qml gui to show results Show next bus/tram/underground departures. This program ist unofficial. + +Running unit tests: + +$ python -m gotovienna.tests.runner + diff --git a/gotovienna/tests/__init__.py b/gotovienna/tests/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/gotovienna/tests/__init__.py @@ -0,0 +1 @@ + diff --git a/gotovienna/tests/realtime.py b/gotovienna/tests/realtime.py new file mode 100644 index 0000000..d7cf44a --- /dev/null +++ b/gotovienna/tests/realtime.py @@ -0,0 +1,26 @@ +import unittest +import sys +import os +sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + +from gotovienna.realtime import * + +parser = ITipParser() + +class ParseTest(unittest.TestCase): + + def test_lines(self): + lines = parser.lines + self.assertTrue(type(lines) == dict) + self.assertTrue(lines) + + def test_stations(self): + lines = parser.lines + + s = [] + for line in lines: + s.append(parser.get_stations(line[0])) + self.assertTrue(s) + +if __name__ == '__main__': + unittest.main() diff --git a/gotovienna/tests/routing.py b/gotovienna/tests/routing.py new file mode 100644 index 0000000..3f27286 --- /dev/null +++ b/gotovienna/tests/routing.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- + +import unittest +from datetime import datetime + +from gotovienna.routing import * + +dtime = datetime.now() +dtime = dtime.replace(hour=15, minute=0) + +origin = u'Börse'.encode('UTF-8') +destination = 'Handelskai' +s = search((origin, 'stop'), (destination, 'stop'), dtime).read() +parser = sParser(s) +p = rParser(s) + + +originc = 'Simmeri' +destinationc = 'Karlspla' +sc = search((originc, 'stop'), (destinationc, 'stop'), dtime).read() +parserc = sParser(sc) + + +origina = 'Zwicklgasse 1' +destinationa = 'Himmelstrasse 1' +ot = dt = 'address' + + +originac = 'Foobar Strasse 123' +destinationac = 'Bazgasse 321' + + +class SearchTest(unittest.TestCase): + + def test_state(self): + state = parser.check_page() + statec = parserc.check_page() + + self.assertEqual(PageType.RESULT, state) + self.assertEqual(PageType.CORRECTION, statec) + + def test_correction(self): + cor = parserc.get_correction() + s = search((cor[0][0], 'stop'), (cor[1][0], 'stop'), dtime).read() + parser = sParser(s) + self.assertEqual(PageType.RESULT, parser.check_page()) + + def test_overview_shouldFindMultipleItems(self): + # TODO Replace with assertGreater in new python version + self.assertTrue(len(p.overview) > 1) + + def test_detail_shouldFindMultipleItems(self): + # TODO Replace with assertGreater in new python version + self.assertTrue(len(p.details) > 1) + + def test_detail_shouldFindMultipleStations(self): + # TODO Replace with assertGreater in new python version + self.assertTrue(len(p.details[0]) > 1) + + def test_parser_overviewAndDetailsShouldHaveSameLength(self): + self.assertEqual(len(p.details), len(p.overview)) + + def test_parser_shouldFindMoreThanOneChange(self): + self.assertTrue(p.overview[0]['change'] > 0) + + def test_parser_shouldFindPriceGreaterZero(self): + self.assertTrue(p.overview[0]['price'] > 0.0) + + def test_parser_shouldFindDate(self): + self.assertTrue(p.overview[0]['date'] == dtime.date()) + + +if __name__ == '__main__': + unittest.main() diff --git a/gotovienna/tests/runner.py b/gotovienna/tests/runner.py new file mode 100644 index 0000000..7c520f9 --- /dev/null +++ b/gotovienna/tests/runner.py @@ -0,0 +1,11 @@ + +import unittest + +# XXX: This is not really nice - we should use some kind of discovery + +from gotovienna.tests.realtime import * +from gotovienna.tests.routing import * + +if __name__ == '__main__': + unittest.main() + diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fec950d21cea7ac1e8a680f0fbfbb21f5841960a GIT binary patch literal 2536 zcmVP)Zy{I<0?Y2~0=vsg zSdo3qw}0Hr_6=4Bka zY=l~$ElC-(BrpjW26O@`;5kVrO5j}&%nBZdNop-crpI3ioDb9kl|U=-f~2-EHgcvl z*oUh6k^BSbVk<6hKpOjLlhs}@inaxiC`Z?f!c%~s0n>r7$PP1m5V$SM5N7raZm|8m z=0>wVn(vl0CW1c+{22H;Fd+0=X0`#iS<>cAV_&10S$`4_2riBo-(KJ)p#~#1#z;>P zRt;ciUW!CR1W!RSvu^|Ukh{N%tnmf_3xT<2c8R2Ip)M+LGsCCwb7Y&DeFFF^Ff#Ni zBj0d;~<&B)-)|;&7i3WgRdRI1{%_z6>;Y?;C;YP#@<4FkB1PgOO(b59Fm_&};g(a%Q))TE9vi|92ex>) z-{k3Uy@#nSq;G&<;o)D7;=#@SUwOD@pd!cRh|}+?z{+m=LT42$sMnE#j$)nKwi|r6 z5GI1=0d+yW8Car-Q%TZ3;6|_M8)i1NOj$W(W`l5hScVoy?U$0$xN)@vO(TITbBrcp zU(0>AH3_xtEk%(!wLJyAT88eQ_v*ip)R_+`X#;Ng0aO8>EkjNeT}XD*-ze!{1!SK9 ze(p8R?loG2RS$vO)5Xv)%hM%Y4t|PPf2IVykC{}4oMN&|aff`_6MKyoBR-kj#q&n`s)9i?gzgHeKo#>?;x8;nhp=i2d1htaPm+$>%R+)+WfV z!Vd2sF#n%Nloy6%DCQjCQpoQ=Jj`{49S@QL3>or;$9S;F(PDUF+ zsqVmYUj2d+@Ke3|OA+t8yn4J0*;DeO^2qk~G~NsW>r3b?m&{_8^}UMGlV1HMGs~N% zGP9{T4;@?}|8xYb*{fF z){7`3kjBV1bD=2T4rX0^T6)_&I;;nz@xn(!)}tp z!y!;B$>GJq5x+E2Gpp1vDscXcLeVhio96aYjuepy8aA0uZ+H4j#DwG zht5CZ8BK8UD7C$C3UvLyp-6{vgqqts>An=Sifo`-fVA>$hRhDG@^UUG3_DzoLS{D4 z%r=$7^G;LVd(Ysma`8SJdT%$e`M?ZwnagUy0o+l&0qmiAwe84qs>aVS#pz#`(Qy9R z_%eCkQObYsc@orUL#ku+-$mAHN9xsfRw17EBAwE29%962;!QJyUcbuBJ_k&YbZ3~) z%$5M#Bt2nflYqIBeiXt?!1-Wj13Q5SB<&3KKL)rDxE7ZLXa(+()ac|yB5p7(tbZht&KV+7U8_~?ZB^t0UQOUd6+wKLHpCd4qSB5fr}T1c(@0F*KmL67GMp|v3&!m@NoCw zQsH+4_u_oUTv?*s7#j3ua6QB%d^k%xga6i3oPk{(aCTX|z;m6Zumt0$w-xZ5l4BSL+pZI#BEu zYYlGySOaw95`Bf}L7d@Mo7shCR%vDf&1|Zf-Cl(Eq)5^(U@Ne|%<9c-jG6tO;J!3+ zc}|zQfz3f#3h?cqe!=Ent0q&c*M%-QQUw|J1%l-#gQs-{b`kti#0000 + + + + + + + + + image/svg+xml + + + + + + goto + vienna + + + diff --git a/logo.png b/logo.png deleted file mode 100644 index fec950d21cea7ac1e8a680f0fbfbb21f5841960a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2536 zcmVP)Zy{I<0?Y2~0=vsg zSdo3qw}0Hr_6=4Bka zY=l~$ElC-(BrpjW26O@`;5kVrO5j}&%nBZdNop-crpI3ioDb9kl|U=-f~2-EHgcvl z*oUh6k^BSbVk<6hKpOjLlhs}@inaxiC`Z?f!c%~s0n>r7$PP1m5V$SM5N7raZm|8m z=0>wVn(vl0CW1c+{22H;Fd+0=X0`#iS<>cAV_&10S$`4_2riBo-(KJ)p#~#1#z;>P zRt;ciUW!CR1W!RSvu^|Ukh{N%tnmf_3xT<2c8R2Ip)M+LGsCCwb7Y&DeFFF^Ff#Ni zBj0d;~<&B)-)|;&7i3WgRdRI1{%_z6>;Y?;C;YP#@<4FkB1PgOO(b59Fm_&};g(a%Q))TE9vi|92ex>) z-{k3Uy@#nSq;G&<;o)D7;=#@SUwOD@pd!cRh|}+?z{+m=LT42$sMnE#j$)nKwi|r6 z5GI1=0d+yW8Car-Q%TZ3;6|_M8)i1NOj$W(W`l5hScVoy?U$0$xN)@vO(TITbBrcp zU(0>AH3_xtEk%(!wLJyAT88eQ_v*ip)R_+`X#;Ng0aO8>EkjNeT}XD*-ze!{1!SK9 ze(p8R?loG2RS$vO)5Xv)%hM%Y4t|PPf2IVykC{}4oMN&|aff`_6MKyoBR-kj#q&n`s)9i?gzgHeKo#>?;x8;nhp=i2d1htaPm+$>%R+)+WfV z!Vd2sF#n%Nloy6%DCQjCQpoQ=Jj`{49S@QL3>or;$9S;F(PDUF+ zsqVmYUj2d+@Ke3|OA+t8yn4J0*;DeO^2qk~G~NsW>r3b?m&{_8^}UMGlV1HMGs~N% zGP9{T4;@?}|8xYb*{fF z){7`3kjBV1bD=2T4rX0^T6)_&I;;nz@xn(!)}tp z!y!;B$>GJq5x+E2Gpp1vDscXcLeVhio96aYjuepy8aA0uZ+H4j#DwG zht5CZ8BK8UD7C$C3UvLyp-6{vgqqts>An=Sifo`-fVA>$hRhDG@^UUG3_DzoLS{D4 z%r=$7^G;LVd(Ysma`8SJdT%$e`M?ZwnagUy0o+l&0qmiAwe84qs>aVS#pz#`(Qy9R z_%eCkQObYsc@orUL#ku+-$mAHN9xsfRw17EBAwE29%962;!QJyUcbuBJ_k&YbZ3~) z%$5M#Bt2nflYqIBeiXt?!1-Wj13Q5SB<&3KKL)rDxE7ZLXa(+()ac|yB5p7(tbZht&KV+7U8_~?ZB^t0UQOUd6+wKLHpCd4qSB5fr}T1c(@0F*KmL67GMp|v3&!m@NoCw zQsH+4_u_oUTv?*s7#j3ua6QB%d^k%xga6i3oPk{(aCTX|z;m6Zumt0$w-xZ5l4BSL+pZI#BEu zYYlGySOaw95`Bf}L7d@Mo7shCR%vDf&1|Zf-Cl(Eq)5^(U@Ne|%<9c-jG6tO;J!3+ zc}|zQfz3f#3h?cqe!=Ent0q&c*M%-QQUw|J1%l-#gQs-{b`kti#0000 - - - - - - - - - image/svg+xml - - - - - - goto - vienna - - - diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/realtime.py b/tests/realtime.py deleted file mode 100644 index 9d2b1e3..0000000 --- a/tests/realtime.py +++ /dev/null @@ -1,25 +0,0 @@ -import unittest -import sys -import os -sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) -from iTip import iParser - -parser = iParser() - -class ParseTest(unittest.TestCase): - - def test_lines(self): - lines = parser.lines - self.assertTrue(type(lines) == dict) - self.assertTrue(lines) - - def test_stations(self): - lines = parser.lines - - s = [] - for line in lines: - s.append(parser.get_stations(line[0])) - self.assertTrue(s) - -if __name__ == '__main__': - unittest.main() diff --git a/tests/routing.py b/tests/routing.py deleted file mode 100644 index 07a9d90..0000000 --- a/tests/routing.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python -# -*- coding: UTF-8 -*- -import unittest -from scotty import search, ParserError, sParser, rParser, PageType -from datetime import datetime -from BeautifulSoup import BeautifulSoup - -dtime = datetime.now() -dtime = dtime.replace(hour=15, minute=0) - -origin = u'Börse'.encode('UTF-8') -destination = 'Handelskai' -s = search((origin, 'stop'), (destination, 'stop'), dtime).read() -parser = sParser(s) -p = rParser(s) - - -originc = 'Simmeri' -destinationc = 'Karlspla' -sc = search((originc, 'stop'), (destinationc, 'stop'), dtime).read() -parserc = sParser(sc) - - -origina = 'Zwicklgasse 1' -destinationa = 'Himmelstrasse 1' -ot = dt = 'address' - - -originac = 'Foobar Strasse 123' -destinationac = 'Bazgasse 321' - - -class SearchTest(unittest.TestCase): - - def test_state(self): - state = parser.check_page() - statec = parserc.check_page() - - self.assertEqual(PageType.RESULT, state) - self.assertEqual(PageType.CORRECTION, statec) - - def test_correction(self): - cor = parserc.get_correction() - s = search((cor[0][0], 'stop'), (cor[1][0], 'stop'), dtime).read() - parser = sParser(s) - self.assertEqual(PageType.RESULT, parser.check_page()) - - def test_overview_shouldFindMultipleItems(self): - # TODO Replace with assertGreater in new python version - self.assertTrue(len(p.overview) > 1) - - def test_detail_shouldFindMultipleItems(self): - # TODO Replace with assertGreater in new python version - self.assertTrue(len(p.details) > 1) - - def test_detail_shouldFindMultipleStations(self): - # TODO Replace with assertGreater in new python version - self.assertTrue(len(p.details[0]) > 1) - - def test_parser_overviewAndDetailsShouldHaveSameLength(self): - self.assertEqual(len(p.details), len(p.overview)) - - def test_parser_shouldFindMoreThanOneChange(self): - self.assertTrue(p.overview[0]['change'] > 0) - - def test_parser_shouldFindPriceGreaterZero(self): - self.assertTrue(p.overview[0]['price'] > 0.0) - - def test_parser_shouldFindDate(self): - self.assertTrue(p.overview[0]['date'] == dtime.date()) - - -if __name__ == '__main__': - unittest.main() -- 1.7.9.5