Skip to content

Commit 9e08c5f

Browse files
committed
- Add Unit Test
1 parent 159b831 commit 9e08c5f

1 file changed

Lines changed: 193 additions & 0 deletions

File tree

tests/test_newsapi_client.py

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
import unittest
2+
import os
3+
from newsapi.newsapi_client import NewsApiClient
4+
5+
6+
class NewsApiClientTest(unittest.TestCase):
7+
8+
def setUp(self):
9+
key = os.environ.get('news_api_secret')
10+
self.api = NewsApiClient(key)
11+
12+
def test_api_top_headline(self):
13+
# Raise TypeError if Keyword/Phrase param is not a string
14+
q = 0
15+
with self.assertRaises(TypeError):
16+
self.api.get_top_headlines(q=q)
17+
18+
# Raise ValueError if sources param in not None and country param or category param is not None
19+
sources = 'techcrunch'
20+
country = 'us'
21+
category = 'business'
22+
with self.assertRaises(ValueError):
23+
self.api.get_top_headlines(sources=sources, country=country, category=category)
24+
25+
# Raise TypeError if sources param is not a string
26+
sources = 0
27+
with self.assertRaises(TypeError):
28+
self.api.get_top_headlines(sources=sources)
29+
30+
# Raise TypeError if language param is not a string
31+
language = 0
32+
with self.assertRaises(TypeError):
33+
self.api.get_top_headlines(language=language)
34+
35+
# Raise ValueError if language param is invalid
36+
language = 'xx'
37+
with self.assertRaises(ValueError):
38+
self.api.get_top_headlines(language=language)
39+
40+
# Raise TypeError if country param is not a string
41+
country = 0
42+
with self.assertRaises(TypeError):
43+
self.api.get_top_headlines(country=country)
44+
45+
# Raise ValueError if country param is invalid
46+
country = 'xx'
47+
with self.assertRaises(ValueError):
48+
self.api.get_top_headlines(country=country)
49+
50+
# Raises TypeError if category param is not a string
51+
category = 0
52+
with self.assertRaises(TypeError):
53+
self.api.get_top_headlines(category=category)
54+
55+
# Raises ValueError if category param is invalid
56+
category = 'x0x'
57+
with self.assertRaises(ValueError):
58+
self.api.get_top_headlines(category=category)
59+
60+
# Raises TypeError if page_size param is not an int
61+
page_size = '1'
62+
with self.assertRaises(TypeError):
63+
self.api.get_top_headlines(page_size=page_size)
64+
65+
# Raises ValueError if page_size param is less than zero(0) or greater than 100
66+
page_size = -1
67+
with self.assertRaises(ValueError):
68+
self.api.get_top_headlines(page_size=page_size)
69+
70+
page_size = 1000
71+
with self.assertRaises(ValueError):
72+
self.api.get_top_headlines(page_size=page_size)
73+
74+
# Raises a TypeError is page param is not an int
75+
page = '1'
76+
with self.assertRaises(TypeError):
77+
self.api.get_top_headlines(page=page)
78+
79+
# Raises a ValueError if page param is less than zero(0)
80+
page = -1
81+
with self.assertRaises(ValueError):
82+
self.api.get_top_headlines(page=page)
83+
84+
def test_api_get_everything(self):
85+
# Raise TypeError if Keyword/Phrase param is None
86+
q = 0
87+
with self.assertRaises(TypeError):
88+
self.api.get_everything(q=q)
89+
90+
# Raise TypeError if sources param is not a string
91+
sources = 0
92+
with self.assertRaises(TypeError):
93+
self.api.get_everything(sources=sources)
94+
95+
# Raise TypeError is domains param is not a string
96+
domains = 0
97+
with self.assertRaises(TypeError):
98+
self.api.get_everything(domains=domains)
99+
100+
# Raise TypeError is from_param param is not a string
101+
from_param = 0
102+
with self.assertRaises(TypeError):
103+
self.api.get_everything(from_param=from_param)
104+
105+
# Raise ValueError if param is not in the format YYYY-MM-DD
106+
from_param = '2016-6-4'
107+
with self.assertRaises(ValueError):
108+
self.api.get_everything(from_param=from_param)
109+
110+
# Raise TypeError if to param is not a string
111+
to = 1
112+
with self.assertRaises(TypeError):
113+
self.api.get_everything(to=to)
114+
115+
# Raise ValueError if to param is not in the format YYYY-MM-DD
116+
to = '2016-6-24'
117+
with self.assertRaises(ValueError):
118+
self.api.get_everything(to=to)
119+
120+
# Raise TypeError if language param is not a string
121+
language = 0
122+
with self.assertRaises(TypeError):
123+
self.api.get_everything(language=language)
124+
125+
# Raise ValueError if language param is invalid
126+
language = 'xx'
127+
with self.assertRaises(ValueError):
128+
self.api.get_everything(language=language)
129+
130+
# Raise TypeError is sort_by param is not a string
131+
sort_by = 1
132+
with self.assertRaises(TypeError):
133+
self.api.get_everything(sort_by=sort_by)
134+
135+
# Raise ValueError if soft_by param is invalid
136+
sort_by = 'sort'
137+
with self.assertRaises(ValueError):
138+
self.api.get_everything(sort_by=sort_by)
139+
140+
# Raises TypeError if page_size param is not an int
141+
page_size = '1'
142+
with self.assertRaises(TypeError):
143+
self.api.get_everything(page_size=page_size)
144+
145+
# Raises ValueError if page_size param is less than zero(0) or greater than 100
146+
page_size = -1
147+
with self.assertRaises(ValueError):
148+
self.api.get_everything(page_size=page_size)
149+
150+
page_size = 1000
151+
with self.assertRaises(ValueError):
152+
self.api.get_everything(page_size=page_size)
153+
154+
# Raises a TypeError is page param is not an int
155+
page = '1'
156+
with self.assertRaises(TypeError):
157+
self.api.get_everything(page=page)
158+
159+
# Raises a ValueError if page param is less than zero(0)
160+
page = -1
161+
with self.assertRaises(ValueError):
162+
self.api.get_everything(page=page)
163+
164+
def test_api_get_sources(self):
165+
# Raise TypeError if language param is not a string
166+
language = 0
167+
with self.assertRaises(TypeError):
168+
self.api.get_sources(language=language)
169+
170+
# Raise ValueError if language param is invalid
171+
language = 'xx'
172+
with self.assertRaises(ValueError):
173+
self.api.get_sources(language=language)
174+
175+
# Raise TypeError if country param is not a string
176+
country = 0
177+
with self.assertRaises(TypeError):
178+
self.api.get_sources(country=country)
179+
180+
# Raise ValueError if country param is invalid
181+
country = 'xx'
182+
with self.assertRaises(ValueError):
183+
self.api.get_sources(country=country)
184+
185+
# Raises TypeError if category param is not a string
186+
category = 0
187+
with self.assertRaises(TypeError):
188+
self.api.get_sources(category=category)
189+
190+
# Raises ValueError if category param is invalid
191+
category = 'x0x'
192+
with self.assertRaises(ValueError):
193+
self.api.get_sources(category=category)

0 commit comments

Comments
 (0)