Skip to content
This repository was archived by the owner on Nov 22, 2024. It is now read-only.

Commit 26a90c3

Browse files
committed
more tests - invalid types and string returns
1 parent 8dbf8cd commit 26a90c3

5 files changed

Lines changed: 281 additions & 10 deletions

File tree

CloudFlare/tests/test_cloudflare.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def test_ips3():
3939
assert isinstance(ips, dict)
4040
assert len(ips) > 0
4141

42-
def test_cloudflare_with_global_request_timeout_and__max_request_retries(debug=False):
42+
def test_cloudflare_with_global_request_timeout_and_max_request_retries(debug=False):
4343
global cf
4444
cf = CloudFlare.CloudFlare(debug=debug, global_request_timeout=10, max_request_retries=2)
4545
assert isinstance(cf, CloudFlare.CloudFlare)
@@ -49,12 +49,49 @@ def test_ips4():
4949
assert isinstance(ips, dict)
5050
assert len(ips) > 0
5151

52+
def test_cloudflare_with_global_request_timeout_invalid(debug=False):
53+
global cf
54+
cf = CloudFlare.CloudFlare(debug=debug, global_request_timeout='STRING')
55+
assert isinstance(cf, CloudFlare.CloudFlare)
56+
57+
def test_ips5():
58+
ips = cf.ips()
59+
assert isinstance(ips, dict)
60+
assert len(ips) > 0
61+
62+
def test_cloudflare_with_max_request_retries_invalid(debug=False):
63+
global cf
64+
cf = CloudFlare.CloudFlare(debug=debug, max_request_retries='STRING')
65+
assert isinstance(cf, CloudFlare.CloudFlare)
66+
67+
def test_ips6():
68+
ips = cf.ips()
69+
assert isinstance(ips, dict)
70+
assert len(ips) > 0
71+
72+
def test_cloudflare_with_global_request_timeout_and_max_request_retries_invalid(debug=False):
73+
global cf
74+
cf = CloudFlare.CloudFlare(debug=debug, global_request_timeout='STRING', max_request_retries='STRING')
75+
assert isinstance(cf, CloudFlare.CloudFlare)
76+
77+
def test_ips7():
78+
ips = cf.ips()
79+
assert isinstance(ips, dict)
80+
assert len(ips) > 0
81+
5282
if __name__ == '__main__':
5383
test_cloudflare(debug=True)
5484
test_ips1()
5585
test_cloudflare_with_global_request_timeout(debug=True)
5686
test_ips2()
5787
test_cloudflare_with_max_request_retries(debug=True)
5888
test_ips3()
59-
test_cloudflare_with_global_request_timeout_and__max_request_retries(debug=True)
89+
test_cloudflare_with_global_request_timeout_and_max_request_retries(debug=True)
6090
test_ips4()
91+
test_cloudflare_with_global_request_timeout_invalid(debug=True)
92+
test_ips5()
93+
test_cloudflare_with_max_request_retries_invalid(debug=True)
94+
test_ips6()
95+
test_cloudflare_with_global_request_timeout_and_max_request_retries_invalid(debug=True)
96+
test_ips7()
97+

CloudFlare/tests/test_cloudflare_calls.py

Lines changed: 87 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@
88
import CloudFlare
99

1010
# test Cloudflare init param (ie. debug, raw, etc)
11-
#
12-
# cf = CloudFlare.CloudFlare(
13-
# email=None, key=None, token=None, certtoken=None,
14-
# debug=False, raw=False, use_sessions=True,
15-
# profile=None,
16-
# base_url=None,
17-
# global_request_timeout=None, max_request_retries=None
18-
# )
1911

2012
cf = None
2113

@@ -24,6 +16,13 @@ def test_cloudflare():
2416
cf = CloudFlare.CloudFlare()
2517
assert isinstance(cf, CloudFlare.CloudFlare)
2618

19+
def test_percent_s():
20+
21+
s = '%s' % cf
22+
assert len(s) > 0 and isinstance(s, str)
23+
s = '%r' % cf
24+
assert len(s) > 0 and isinstance(s, str)
25+
2726
def test_ips1():
2827
ips = cf.ips()
2928
assert isinstance(ips, dict)
@@ -64,8 +63,75 @@ def test_ips5():
6463
assert isinstance(ips, dict)
6564
assert len(ips) > 0
6665

66+
def test_cloudflare_url_invalid():
67+
global cf
68+
cf = CloudFlare.CloudFlare(base_url='blah blah blah blah ...')
69+
# this does not fail yet - so we wait
70+
71+
def test_ips6_should_fail():
72+
try:
73+
ips = cf.ips()
74+
except CloudFlare.exceptions.CloudFlareAPIError as e:
75+
print('Error expected: %d %s' % (e, e), file=sys.stderr)
76+
pass
77+
78+
def test_cloudflare_url_wrong():
79+
global cf
80+
cf = CloudFlare.CloudFlare(base_url='http://example.com/')
81+
# this does not fail yet - so we wait
82+
83+
def test_ips7_should_fail():
84+
try:
85+
ips = cf.ips()
86+
except CloudFlare.exceptions.CloudFlareAPIError as e:
87+
print('Error expected: %d %s' % (e, e), file=sys.stderr)
88+
pass
89+
90+
def test_cloudflare_email_invalid():
91+
global cf
92+
try:
93+
cf = CloudFlare.CloudFlare(email=int(0))
94+
assert False
95+
except TypeError as e:
96+
print('Error expected: %s' % (e), file=sys.stderr)
97+
98+
def test_cloudflare_key_invalid():
99+
global cf
100+
try:
101+
cf = CloudFlare.CloudFlare(key=int(0))
102+
assert False
103+
except TypeError as e:
104+
print('Error expected: %s' % (e), file=sys.stderr)
105+
106+
def test_cloudflare_token_invalid():
107+
global cf
108+
try:
109+
cf = CloudFlare.CloudFlare(token=int(0))
110+
assert False
111+
except TypeError as e:
112+
print('Error expected: %s' % (e), file=sys.stderr)
113+
114+
def test_cloudflare_certtoken_invalid():
115+
global cf
116+
try:
117+
cf = CloudFlare.CloudFlare(certtoken=int(0))
118+
assert False
119+
except TypeError as e:
120+
print('Error expected: %s' % (e), file=sys.stderr)
121+
122+
def test_cloudflare_context():
123+
global cf
124+
125+
cf = None
126+
with CloudFlare.CloudFlare() as cf:
127+
assert isinstance(cf, CloudFlare.CloudFlare)
128+
ips = cf.ips()
129+
assert isinstance(ips, dict)
130+
assert len(ips) > 0
131+
67132
if __name__ == '__main__':
68133
test_cloudflare()
134+
test_percent_s()
69135
test_ips1()
70136
test_cloudflare_debug()
71137
test_ips2()
@@ -74,3 +140,16 @@ def test_ips5():
74140
test_cloudflare_no_sessions()
75141
test_ips4()
76142
test_ips5()
143+
144+
test_cloudflare_url_wrong()
145+
test_ips6_should_fail()
146+
147+
test_cloudflare_url_invalid()
148+
test_ips7_should_fail()
149+
150+
test_cloudflare_email_invalid()
151+
test_cloudflare_key_invalid()
152+
test_cloudflare_token_invalid()
153+
test_cloudflare_certtoken_invalid()
154+
155+
test_cloudflare_contexe()

CloudFlare/tests/test_ips.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,39 @@ def test_ips_plus_jdcloud():
3535
assert len(ips['ipv6_cidrs']) > 0
3636
assert len(ips['jdcloud_cidrs']) > 0
3737

38+
def test_ips_patch():
39+
# should fail!
40+
try:
41+
ips = cf.ips.patch()
42+
except CloudFlare.exceptions.CloudFlareAPIError as e:
43+
print('Error expected: %s' % (e), file=sys.stderr)
44+
45+
def test_ips_post():
46+
# should fail!
47+
try:
48+
ips = cf.ips.post()
49+
except CloudFlare.exceptions.CloudFlareAPIError as e:
50+
print('Error expected: %s' % (e), file=sys.stderr)
51+
52+
def test_ips_put():
53+
# should fail!
54+
try:
55+
ips = cf.ips.put()
56+
except CloudFlare.exceptions.CloudFlareAPIError as e:
57+
print('Error expected: %s' % (e), file=sys.stderr)
58+
59+
def test_ips_delete():
60+
# should fail!
61+
try:
62+
ips = cf.ips.delete()
63+
except CloudFlare.exceptions.CloudFlareAPIError as e:
64+
print('Error expected: %s' % (e), file=sys.stderr)
65+
3866
if __name__ == '__main__':
3967
test_cloudflare(debug=True)
4068
test_ips()
4169
test_ips_plus_jdcloud()
70+
test_ips_patch()
71+
test_ips_post()
72+
test_ips_put()
73+
test_ips_delete()
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
""" graphql tests """
2+
3+
import os
4+
import sys
5+
import time
6+
import random
7+
8+
sys.path.insert(0, os.path.abspath('.'))
9+
sys.path.insert(0, os.path.abspath('..'))
10+
import CloudFlare
11+
12+
# test /zones/:id/logs/received
13+
14+
cf = None
15+
16+
def test_cloudflare(debug=False):
17+
global cf
18+
cf = CloudFlare.CloudFlare(debug=debug)
19+
assert isinstance(cf, CloudFlare.CloudFlare)
20+
21+
zone_name = None
22+
zone_id = None
23+
24+
def test_find_zone(domain_name=None):
25+
global zone_name, zone_id
26+
# grab a random zone identifier from the first 10 zones
27+
if domain_name:
28+
params = {'per_page':1, 'name':domain_name}
29+
else:
30+
params = {'per_page':10}
31+
try:
32+
zones = cf.zones.get(params=params)
33+
except CloudFlare.exceptions.CloudFlareAPIError as e:
34+
print('%s: Error %d=%s' % (domain_name, int(e), str(e)), file=sys.stderr)
35+
exit(0)
36+
assert len(zones) > 0 and len(zones) <= 10
37+
n = random.randrange(len(zones))
38+
zone_name = zones[n]['name']
39+
zone_id = zones[n]['id']
40+
assert len(zone_id) == 32
41+
print('zone: %s %s' % (zone_id, zone_name), file=sys.stderr)
42+
43+
def test_logs_received():
44+
""" /zones/:id/logs/received test """
45+
46+
# python -m cli4 -v zones/:$zone/logs/received
47+
try:
48+
r = cf.zones.logs.received.get(zone_id)
49+
except CloudFlare.exceptions.CloudFlareAPIError as e:
50+
exit('/zones.logs.received.get %d %s - api call failed' % (e, e))
51+
# XXX/TODO - sadly this call returns all manner of weird stuff - we punt for now
52+
assert r != None
53+
54+
if __name__ == '__main__':
55+
test_cloudflare(debug=True)
56+
if len(sys.argv) > 1:
57+
test_find_zone(sys.argv[1])
58+
else:
59+
test_find_zone()
60+
test_logs_received()

CloudFlare/tests/test_workers.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
""" workers tests """
2+
3+
import os
4+
import sys
5+
import time
6+
import random
7+
8+
sys.path.insert(0, os.path.abspath('.'))
9+
sys.path.insert(0, os.path.abspath('..'))
10+
import CloudFlare
11+
12+
# test /accounts/:id/workers/scripts
13+
14+
cf = None
15+
16+
def test_cloudflare(debug=False):
17+
global cf
18+
cf = CloudFlare.CloudFlare(debug=debug)
19+
assert isinstance(cf, CloudFlare.CloudFlare)
20+
21+
account_name = None
22+
account_id = None
23+
24+
def test_find_account(find_name=None):
25+
global account_name, account_id
26+
# grab a random account identifier from the first 10 accounts
27+
if find_name:
28+
params = {'per_page':1, 'name':find_name}
29+
else:
30+
params = {'per_page':10}
31+
try:
32+
accounts = cf.accounts.get(params=params)
33+
except CloudFlare.exceptions.CloudFlareAPIError as e:
34+
print('%s: Error %d=%s' % (find_name, int(e), str(e)), file=sys.stderr)
35+
exit(0)
36+
assert len(accounts) > 0 and len(accounts) <= 10
37+
n = random.randrange(len(accounts))
38+
account_name = accounts[n]['name']
39+
account_id = accounts[n]['id']
40+
assert len(account_id) == 32
41+
print('account: %s %s' % (account_id, account_name), file=sys.stderr)
42+
43+
def test_workers():
44+
workers = cf.accounts.workers.scripts(account_id)
45+
assert len(workers) >= 0
46+
assert isinstance(workers, list)
47+
# just test one script
48+
n = random.randrange(len(workers))
49+
for w in workers[n:1]:
50+
assert 'id' in w
51+
script_name = w['id']
52+
script_content = cf.accounts.workers.scripts(account_id, script_name)
53+
assert isinstance(script_content, str)
54+
assert len(script_content) > 0
55+
# print('%s: %s' % (script_name, script_content), file=sys.stderr)
56+
57+
if __name__ == '__main__':
58+
test_cloudflare(debug=True)
59+
if len(sys.argv) > 1:
60+
test_find_account(sys.argv[1])
61+
else:
62+
test_find_account()
63+
test_workers()

0 commit comments

Comments
 (0)