if (matched && !method.empty() && req->method != method) {
// method did not match, record it though so we can return correct result
matched = false;
- seen = true;
+ // The OPTIONS handler registered in pdns/webserver.cc matches every
+ // url, and would cause "not found" errors to always be superseded
+ // with "found, but wrong method" errors, so don't pretend there has
+ // been a match in this case.
+ if (method != "OPTIONS") {
+ seen = true;
+ }
continue;
}
if (matched) {
r = self.session.options(self.url("/api/v1/servers/localhost/invalid"))
self.assertEqual(r.status_code, requests.codes.not_found)
+ r = self.session.options(self.url("/api/v1/servers/remotehost"))
+ self.assertEqual(r.status_code, requests.codes.not_found)
+
+ r = self.session.get(self.url("/api/v1/servers/remotehost"))
+ if is_auth():
+ self.assertEqual(r.status_code, requests.codes.not_found)
+ else:
+ self.assertEqual(r.status_code, requests.codes.unauthorized)
+
print("response", repr(r.headers))