if (!nameservers.IsArray() || nameservers.Size() == 0)
throw ApiException("Need at least one nameserver");
+ for (SizeType i = 0; i < nameservers.Size(); ++i) {
+ if (!nameservers[i].IsString()) {
+ throw ApiException("Nameservers must be strings.");
+ }
+ }
+
// no going back after this
if(!B.createDomain(zonename))
throw ApiException("Creating domain '"+zonename+"' failed");
self.assertEquals(data[k], payload[k])
self.assertEquals(data['id'], expected_id)
+ def test_CreateZoneWithNameserversNonString(self):
+ # ensure we don't crash
+ name = unique_zone_name()
+ payload = {
+ 'name': name,
+ 'kind': 'Native',
+ 'nameservers': [{'a': 'ns1.example.com'}] # invalid
+ }
+ print payload
+ r = self.session.post(
+ self.url("/servers/localhost/zones"),
+ data=json.dumps(payload),
+ headers={'content-type': 'application/json'})
+ self.assertEquals(r.status_code, 422)
+
def test_GetZoneWithSymbols(self):
payload, data = self.create_zone(name='foo/bar.'+unique_zone_name())
name = payload['name']