-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproj3_choc_test.py
executable file
·127 lines (98 loc) · 3.83 KB
/
proj3_choc_test.py
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import unittest
from proj3_choc import *
class TestDatabase(unittest.TestCase):
def setUp(self):
reload_data()
def test_bar_table(self):
conn = sqlite3.connect(DBNAME)
cur = conn.cursor()
sql = 'SELECT Company FROM Bars'
results = cur.execute(sql)
result_list = results.fetchall()
self.assertIn(('Sirene',), result_list)
self.assertEqual(len(result_list), 1795)
sql = '''
SELECT Company, SpecificBeanBarName, CocoaPercent,
Rating
FROM Bars
WHERE Company="Woodblock"
ORDER BY Rating DESC
'''
results = cur.execute(sql)
result_list = results.fetchall()
#print(result_list)
self.assertEqual(len(result_list), 8)
self.assertEqual(result_list[0][3], 4.0)
conn.close()
def test_country_table(self):
conn = sqlite3.connect(DBNAME)
cur = conn.cursor()
sql = '''
SELECT EnglishName
FROM Countries
WHERE Region="Oceania"
'''
results = cur.execute(sql)
result_list = results.fetchall()
self.assertIn(('Australia',), result_list)
self.assertEqual(len(result_list), 27)
sql = '''
SELECT COUNT(*)
FROM Countries
'''
results = cur.execute(sql)
count = results.fetchone()[0]
self.assertEqual(count, 250)
conn.close()
def test_joins(self):
conn = sqlite3.connect(DBNAME)
cur = conn.cursor()
sql = '''
SELECT Alpha2
FROM Bars
JOIN Countries
ON Bars.CompanyLocationId=Countries.Id
WHERE SpecificBeanBarName="Hacienda Victoria"
AND Company="Arete"
'''
results = cur.execute(sql)
result_list = results.fetchall()
self.assertIn(('US',), result_list)
conn.close()
class TestBarSearch(unittest.TestCase):
def test_bar_search(self):
results = process_command('bars ratings top=1')
self.assertEqual(results[0][0], 'Chuao')
results = process_command('bars cocoa bottom=10')
self.assertEqual(results[0][0], 'Guadeloupe')
results = process_command('bars sellcountry=CA ratings top=5')
self.assertEqual(results[0][3], 4.0)
results = process_command('bars sourceregion=Africa ratings top=5')
self.assertEqual(results[0][3], 4.0)
class TestCompanySearch(unittest.TestCase):
def test_company_search(self):
results = process_command('companies region=Europe ratings top=5')
self.assertEqual(results[1][0], 'Idilio (Felchlin)')
results = process_command('companies country=US bars_sold top=5')
self.assertTrue(results[0][0] == 'Fresco' and results[0][2] == 26)
results = process_command('companies cocoa top=5')
self.assertEqual(results[0][0], 'Videri')
self.assertGreater(results[0][2], 0.79)
class TestCountrySearch(unittest.TestCase):
def test_country_search(self):
results = process_command('countries sources ratings bottom=5')
self.assertEqual(results[1][0],'Uganda')
results = process_command('countries sellers bars_sold top=5')
self.assertEqual(results[0][2], 764)
self.assertEqual(results[1][0], 'France')
class TestRegionSearch(unittest.TestCase):
def test_region_search(self):
results = process_command('regions sources bars_sold top=5')
self.assertEqual(results[0][0], 'Americas')
self.assertEqual(results[3][1], 66)
self.assertEqual(len(results), 4)
results = process_command('regions sellers ratings top=10')
self.assertEqual(len(results), 5)
self.assertEqual(results[0][0], 'Oceania')
self.assertGreater(results[3][1], 3.0)
unittest.main()