def test_get_multiple_zones(self, client, initial_data, zone_data, basic_auth_admin_headers): res = client.post("/api/v1/pdnsadmin/zones", headers=basic_auth_admin_headers, data=json.dumps(zone_data), content_type="application/json") data = res.get_json(force=True) data['rrsets'] = [] validate_zone(data) assert res.status_code == 201 res = client.get("/api/v1/pdnsadmin/zones", headers=basic_auth_admin_headers) data = res.get_json(force=True) fake_domain = namedtuple("Domain", data[0].keys())(*data[0].values()) domain_schema = DomainSchema(many=True) json.dumps(domain_schema.dump([fake_domain])) assert res.status_code == 200 zone_url_format = "/api/v1/pdnsadmin/zones/{0}" zone_url = zone_url_format.format(zone_data['name'].rstrip(".")) res = client.delete(zone_url, headers=basic_auth_admin_headers) assert res.status_code == 204
def test_get_multiple_zones( self, client, common_data_mock, zone_data, admin_apikey ): with patch('app.blueprints.api.Domain') as mock_domain: test_domain = Domain(1, name=zone_data['name'].rstrip(".")) mock_domain.query.all.return_value = [test_domain] res = client.get( "/api/v1/servers/localhost/zones", headers=admin_apikey ) data = res.get_json(force=True) fake_domain = namedtuple( "Domain", data[0].keys() )(*data[0].values()) domain_schema = DomainSchema(many=True) json.dumps(domain_schema.dump([fake_domain])) assert res.status_code == 200
def test_get_multiple_zones(self, client, common_data_mock, zone_data, basic_auth_user_headers): test_domain = Domain(1, name=zone_data['name'].rstrip(".")) self.mockk.get_domains.return_value = [test_domain] res = client.get("/api/v1/pdnsadmin/zones", headers=basic_auth_user_headers) data = res.get_json(force=True) fake_domain = namedtuple("Domain", data[0].keys())(*data[0].values()) domain_schema = DomainSchema(many=True) json.dumps(domain_schema.dump([fake_domain])) assert res.status_code == 200
from app.models import Domain, History, Setting, ApiKey from app.lib import utils, helper from app.decorators import api_basic_auth, api_can_create_domain, is_json from app.decorators import apikey_auth, apikey_is_admin from app.decorators import apikey_can_access_domain from app import csrf from app.errors import DomainNotExists, DomainAccessForbidden, RequestIsNotJSON from app.errors import ApiKeyCreateFail, ApiKeyNotUsable, NotEnoughPrivileges from app.schema import ApiKeySchema, DomainSchema, ApiPlainKeySchema from urllib.parse import urljoin from app.lib.log import logging api_blueprint = Blueprint('api_blueprint', __name__) apikey_schema = ApiKeySchema(many=True) domain_schema = DomainSchema(many=True) apikey_plain_schema = ApiPlainKeySchema(many=True) @api_blueprint.errorhandler(400) def handle_400(err): return json.dumps({"msg": "Bad Request"}), 400 @api_blueprint.errorhandler(401) def handle_401(err): return json.dumps({"msg": "Unauthorized"}), 401 @api_blueprint.errorhandler(500) def handle_500(err):