]>
git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.api/test_helper.py
1 from datetime
import datetime
9 DAEMON
= os
.environ
.get('DAEMON', 'authoritative')
10 PDNSUTIL_CMD
= os
.environ
.get('PDNSUTIL_CMD', 'NOT_SET BUT_THIS MIGHT_BE_A_LIST').split(' ')
11 SQLITE_DB
= os
.environ
.get('SQLITE_DB', 'pdns.sqlite3')
14 class ApiTestCase(unittest
.TestCase
):
18 self
.server_address
= '127.0.0.1'
19 self
.server_port
= int(os
.environ
.get('WEBPORT', '5580'))
20 self
.server_url
= 'http://%s:%s/' % (self
.server_address
, self
.server_port
)
21 self
.session
= requests
.Session()
22 self
.session
.headers
= {'X-API-Key': os
.environ
.get('APIKEY', 'changeme-key'), 'Origin': 'http://%s:%s' % (self
.server_address
, self
.server_port
)}
24 def url(self
, relative_url
):
25 return urlparse
.urljoin(self
.server_url
, relative_url
)
27 def assert_success_json(self
, result
):
29 result
.raise_for_status()
33 self
.assertEquals(result
.headers
['Content-Type'], 'application/json')
35 def assert_error_json(self
, result
):
36 self
.assertTrue(400 <= result
.status_code
< 600, "Response has not an error code "+str(result
.status_code
))
37 self
.assertEquals(result
.headers
['Content-Type'], 'application/json', "Response status code "+str(result
.status_code
))
39 def assert_success(self
, result
):
41 result
.raise_for_status()
47 def unique_zone_name():
48 return 'test-' + datetime
.now().strftime('%d%H%S%M%f') + '.org.'
52 return DAEMON
== 'authoritative'
56 return DAEMON
== 'recursor'
60 """Return Connection to Authoritative backend DB."""
61 return sqlite3
.Connection(SQLITE_DB
)
64 def get_db_records(zonename
, qtype
):
65 with
get_auth_db() as db
:
67 SELECT name, type, content, ttl
69 WHERE type = ? AND domain_id = (
70 SELECT id FROM domains WHERE name = ?
71 )""", (qtype
, zonename
.rstrip('.'))).fetchall()
72 recs
= [{'name': row
[0], 'type': row
[1], 'content': row
[2], 'ttl': row
[3]} for row
in rows
]
73 print "DB Records:", recs
77 def pdnsutil_rectify(zonename
):
78 """Run pdnsutil rectify-zone on the given zone."""
79 subprocess
.check_call(PDNSUTIL_CMD
+ ['rectify-zone', zonename
])