-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserver_test.py
More file actions
71 lines (55 loc) · 2.08 KB
/
server_test.py
File metadata and controls
71 lines (55 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/python
import unittest
import server
import logging
import db
import custom_exceptions
class TestServer(unittest.TestCase):
def testRender(self):
obj = server.Server(None)
self.assertEqual("<body>\n<h1> Test </h1>\n</body>",obj._renderMediaWiki("= Test =\n"))
self.assertEqual("<body>\n<h1> Test </h1>\n</body>",obj._renderMediaWiki("= Test ="))
def testSanitizeEvil(self):
obj = server.Server(None)
self.assertFalse("<script>" in obj.sanitize("<script>evil();</script>"))
def testSanitizeSafe(self):
obj = server.Server(None)
self.assertEqual("<h1>Welcome</h1>",obj.sanitize("<h1>Welcome</h1>"))
def testFailedRender(self):
obj = server.Server(None)
html = obj._render("mediawiki","= Welcome")
self.assertTrue("= Welcome" in html)
def testNonRenderedPage(self):
mydb = db.DBMemory()
obj = server.Server(mydb)
ctx = server.Context("<unittest>")
mydb.updatePage("testPage","<unittest>","mediawiki","= Test =",None)
page = obj.getPage(ctx,"testPage")
self.assertEqual("= Test =",page["content"])
self.assertTrue(page["html"].find("<h1> Test </h1>")>=0)
def testRenderedPage(self):
mydb = db.DBMemory()
obj = server.Server(mydb)
ctx = server.Context("<unittest>")
rendered = "<h1>Rendered</h1>"
mydb.updatePage("testPage","<unittest>","mediawiki","= Test =",rendered)
self.assertEqual(rendered,obj.getPage(ctx,"testPage")["html"])
def testNoFound(self):
mydb = db.DBMemory()
obj = server.Server(mydb)
ctx = server.Context("<unittest>")
self.assertEqual(False, mydb.doesPageExist("doesNotExist"))
with self.assertRaises(custom_exceptions.NotFound):
obj.getPage(ctx, "doesNotExist")
def testInvalidInput(self):
mydb = db.DBMemory()
obj = server.Server(mydb)
ctx = server.Context("<unittest>")
with self.assertRaises(custom_exceptions.InvalidInput):
obj.updatePage(ctx,"Index",{})
with self.assertRaises(custom_exceptions.InvalidInput):
obj.updatePage(ctx,"Index",{"contentType":"mediawiki","content":{}})
if __name__ == '__main__':
#FORMAT = "%(asctime)-15s %(message)s"
#logging.basicConfig(format=FORMAT)
unittest.main()