Skip to content

Commit 7bdc8aa

Browse files
author
Tobias Hauth
committed
add tests
1 parent e12a3ba commit 7bdc8aa

File tree

2 files changed

+189
-0
lines changed

2 files changed

+189
-0
lines changed

swiftype/test_completeness.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import os
2+
import httplib
3+
import unittest
4+
5+
class TestCompleteness(unittest.TestCase):
6+
7+
def test_completeness(self):
8+
connection = httplib.HTTPConnection(host=os.environ['API_HOST'])
9+
connection.request('GET', '/', '', {})
10+
response = connection.getresponse().read()
11+
self.assertEquals(response, '')
12+
13+
if __name__ == '__main__':
14+
unittest.main()

swiftype/test_swiftype.py

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
import swiftype
2+
import os
3+
import time
4+
import unittest
5+
6+
class TestClientFunctions(unittest.TestCase):
7+
def setUp(self):
8+
try:
9+
api_key = os.environ['API_KEY']
10+
except:
11+
api_key = "DUMMY_KEY"
12+
13+
self.client = swiftype.Client(api_key=api_key, host=os.environ['API_HOST'])
14+
self.engine = 'engine'
15+
self.document_type = 'doctype'
16+
17+
def test_engines(self):
18+
self.__is_expected_collection(self.client.engines, 200, 10, {'id': '1'})
19+
20+
def test_engine(self):
21+
slug = self.client.engine(self.engine)['body']['slug']
22+
self.assertEquals(slug, self.engine)
23+
24+
def test_engine_create(self):
25+
slug = self.client.create_engine(self.engine)['body']['slug']
26+
self.assertEqual(slug, self.engine)
27+
28+
def test_engine_delete(self):
29+
response = self.client.destroy_engine(self.engine)
30+
self.assertEqual(response['status'], 204)
31+
32+
def test_document_types(self):
33+
self.__is_expected_collection(self.client.document_types, 200, 3, {'slug': 'doctype1'}, self.engine)
34+
35+
def test_document_type(self):
36+
self.__is_expected_result(self.client.document_type, 200, {'slug': self.document_type}, self.engine, self.document_type)
37+
38+
def test_create_document_type(self):
39+
slug = self.client.create_document_type(self.engine, self.document_type)['body']['slug']
40+
self.assertEqual(slug, self.document_type)
41+
42+
def test_destroy_document_type(self):
43+
response = self.client.destroy_document_type(self.engine, self.document_type)
44+
self.assertEqual(response['status'], 204)
45+
46+
def test_documents(self):
47+
self.__is_expected_collection(self.client.documents, 200, 25, {'external_id': '1'}, self.engine, self.document_type)
48+
49+
def test_document(self):
50+
external_id = '1'
51+
id = self.client.document(self.engine, self.document_type, external_id)['body']['external_id']
52+
self.assertEqual(id, external_id)
53+
54+
def test_create_document(self):
55+
doc_id = 'doc_id'
56+
id = self.client.create_document(self.engine, self.document_type, {'external_id': doc_id})['body']['external_id']
57+
self.assertEqual(id, doc_id)
58+
59+
def test_create_documents(self):
60+
docs = [{'external_id': 'doc_id1'}, {'external_id': 'doc_id2'}]
61+
stati = self.client.create_documents(self.engine, self.document_type, docs)['body']
62+
self.assertEqual(stati, [True, True])
63+
64+
def test_create_or_update_document(self):
65+
id = '1'
66+
external_id = self.client.create_or_update_document(self.engine, self.document_type, {'external_id': id, 'fields': {}})['body']['external_id']
67+
self.assertEqual(external_id, id)
68+
69+
def test_create_or_update_documents(self):
70+
docs = [{'external_id': '1'}, {'external_id': '2'}]
71+
stati = self.client.create_or_update_documents(self.engine, self.document_type, docs)['body']
72+
self.assertEqual(stati, [True, True])
73+
74+
def test_update_document(self):
75+
document_id = '1'
76+
id = self.client.update_document(self.engine, self.document_type, document_id, {'title': 'title'})['body']['id']
77+
self.assertEqual(id, document_id)
78+
79+
def test_update_documents(self):
80+
documents = [{'external_id': '1'}, {'external_id': '2'}]
81+
stati = self.client.update_documents(self.engine, self.document_type, documents)['body']
82+
self.assertEqual(stati, [True, True])
83+
84+
def test_destroy_document(self):
85+
response = self.client.destroy_document(self.engine, self.document_type, 'id')
86+
self.assertEqual(response['status'], 204)
87+
88+
def test_destroy_documents(self):
89+
documents = ['1', '2']
90+
stati = self.client.destroy_documents(self.engine, self.document_type, documents)['body']
91+
self.assertEqual(stati, [True, True])
92+
93+
def test_search(self):
94+
total_count = len(self.client.document_types(self.engine)['body'])
95+
self.assertTrue(total_count > 1)
96+
self.__is_expected_search_result(self.client.search, total_count)
97+
98+
def test_search_document_type(self):
99+
self.__is_expected_search_result(self.client.search_document_type, 1, [self.document_type])
100+
101+
def test_suggest(self):
102+
total_count = len(self.client.document_types(self.engine)['body'])
103+
self.assertTrue(total_count > 1)
104+
self.__is_expected_search_result(self.client.suggest, total_count)
105+
106+
def test_suggest_document_type(self):
107+
self.__is_expected_search_result(self.client.suggest_document_type, 1, [self.document_type])
108+
109+
def test_analytics_searches(self):
110+
searches = self.client.analytics_searches(self.engine)['body']
111+
self.assertTrue(len(searches) == 1)
112+
113+
def test_analytics_autoselects(self):
114+
autoselects = self.client.analytics_autoselects(self.engine)['body']
115+
self.assertTrue(len(autoselects) == 1)
116+
117+
def test_analytics_top_queries(self):
118+
top_queries = self.client.analytics_top_queries(self.engine)['body']
119+
self.assertTrue(len(top_queries) == 2)
120+
121+
def test_domains(self):
122+
domains = self.client.domains(self.engine)['body']
123+
self.assertTrue(len(domains) == 2)
124+
125+
def test_domain(self):
126+
domain_id = 'domain_id'
127+
domain = self.client.domain(self.engine, domain_id)['body']
128+
self.assertEqual(domain['id'], domain_id)
129+
130+
def test_destroy_domain(self):
131+
status = self.client.destroy_domain(self.engine, 'domain_id')['status']
132+
self.assertEqual(status, 204)
133+
134+
def test_recrawl_domain(self):
135+
domain_id = 'domain_id'
136+
domain = self.client.recrawl_domain(self.engine, domain_id)['body']
137+
self.assertEqual(domain['id'], domain_id)
138+
139+
def test_crawl_url(self):
140+
domain_id = 'domain_id'
141+
url = 'http://www.example.com'
142+
crawled_url = self.client.crawl_url(self.engine, domain_id, url)['body']['url']
143+
self.assertEqual(crawled_url, url)
144+
145+
def test_create_domain(self):
146+
url = 'http://www.example.com'
147+
domain_url = self.client.create_domain(self.engine, url)['body']['submitted_url']
148+
self.assertEqual(domain_url, url)
149+
150+
def __is_expected_search_result(self, request, document_type_count, args=[]):
151+
response = request(self.engine, *(args + ['*']))
152+
self.assertEqual(len(response['body']['records']), document_type_count)
153+
154+
def __is_expected_result(self, request, status_code, expected_values, *args):
155+
response = request(*args)
156+
self.assertEqual(response['status'], status_code)
157+
for k,v in expected_values.iteritems():
158+
self.assertEqual(response['body'][k], v)
159+
160+
def __is_expected_collection(self, request, status_code, min_body_length, expected_values, *args):
161+
response = request(*args)
162+
self.assertEqual(response['status'], status_code)
163+
self.assertTrue(len(response['body']), min_body_length)
164+
for k,v in expected_values.iteritems():
165+
self.assertEqual(len([item for item in response['body'] if item[k] == v]), 1)
166+
167+
def __time_name(self):
168+
return str(int(time.mktime(time.gmtime())))
169+
170+
def __create_temporary_engine(self, name = None):
171+
name = name if name else self.__time_name()
172+
return
173+
174+
if __name__ == '__main__':
175+
unittest.main()

0 commit comments

Comments
 (0)