def test_create_apikey(self, client, initial_data, apikey_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) assert res.status_code == 201 res = client.post("/api/v1/pdnsadmin/apikeys", headers=basic_auth_admin_headers, data=json.dumps(apikey_data), content_type="application/json") data = res.get_json(force=True) validate_apikey(data) assert res.status_code == 201 apikey_url_format = "/api/v1/pdnsadmin/apikeys/{0}" apikey_url = apikey_url_format.format(data[0]['id']) res = client.delete(apikey_url, headers=basic_auth_admin_headers) assert res.status_code == 204 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_users( self, client, initial_data, # noqa: F811 user1_data, # noqa: F811 basic_auth_admin_headers, basic_auth_user_headers): # noqa: F811 self.client = client self.basic_auth_admin_headers = basic_auth_admin_headers # Create user1 (should fail) res = client.post( "/api/v1/pdnsadmin/users", headers=basic_auth_user_headers, data=json.dumps(user1_data), content_type="application/json", ) assert res.status_code == 401 # Create user1 (as admin) res = client.post( "/api/v1/pdnsadmin/users", headers=basic_auth_admin_headers, data=json.dumps(user1_data), content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 201 assert len(data) == 1 # Check user user1 = self.check_user(user1_data, data[0]) user1_id = user1["id"] # Update to defaults (should fail) res = client.put( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_user_headers, content_type="application/json", ) assert res.status_code == 401 # Delete user (should fail) res = client.delete( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_user_headers, content_type="application/json", ) assert res.status_code == 401 # Cleanup (delete user as admin) res = client.delete( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204
def test_accounts( self, client, initial_data, # noqa: F811 account_data, # noqa: F811 basic_auth_admin_headers, basic_auth_user_headers): # noqa: F811 self.client = client self.basic_auth_admin_headers = basic_auth_admin_headers # Create account (should fail) res = client.post( "/api/v1/pdnsadmin/accounts", headers=basic_auth_user_headers, data=json.dumps(account_data), content_type="application/json", ) assert res.status_code == 401 # Create account (as admin) res = client.post( "/api/v1/pdnsadmin/accounts", headers=basic_auth_admin_headers, data=json.dumps(account_data), content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 201 # Check account data = self.check_account(account_data) account_id = data["id"] # Update to defaults (should fail) res = client.put( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_user_headers, content_type="application/json", ) assert res.status_code == 401 # Delete account (should fail) res = client.delete( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_user_headers, content_type="application/json", ) assert res.status_code == 401 # Cleanup (delete account as admin) res = client.delete( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204
def test_delete_story(client: client): # delete story (without auth) response = client.delete("/api/story/{0}".format( VARS["story_public"]["id"])) assert_json_status(response, Unauthorized.code) # delete story (with auth) response = client.delete("/api/story/{0}".format( VARS["story_public"]["id"]), headers=with_auth_headers()) assert_json_status(response, OK_STATUS) # check if deleted story is really gone response = client.get("/api/story/{0}".format(VARS["story_public"]["id"])) assert_json_status(response, NotFound.code)
def test_response_body(self, client): response_body = client.delete('/rulesets/test').get_json() assert response_body == { 'status': 400, 'field': 'session_id', 'error': 'required' }
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_delete_zone( self, initial_apikey_data, client, zone_data, user_apikey_integration ): res = client.post( "/api/v1/servers/localhost/zones", headers=user_apikey_integration, 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 zone_url_format = "/api/v1/servers/localhost/zones/{0}" zone_url = zone_url_format.format(zone_data['name'].rstrip(".")) res = client.delete( zone_url, headers=user_apikey_integration ) assert res.status_code == 204
def test_response_body(self, client): response = client.delete('/rulesets/test', query_string={'session_id': None}) assert response.get_json() == { 'status': 400, 'field': 'session_id', 'error': 'required' }
def test_response_body(self, client): response = client.delete('/rulesets/test', query_string={'session_id': str(ObjectId())}) assert response.get_json() == { 'status': 404, 'field': 'session_id', 'error': 'unknown' }
def test_get_multiple_apikey(self, client, initial_data, apikey_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) assert res.status_code == 201 res = client.post("/api/v1/pdnsadmin/apikeys", headers=basic_auth_admin_headers, data=json.dumps(apikey_data), content_type="application/json") data = res.get_json(force=True) validate_apikey(data) assert res.status_code == 201 res = client.get("/api/v1/pdnsadmin/apikeys", headers=basic_auth_admin_headers) data = res.get_json(force=True) fake_role = namedtuple( "Role", data[0]['role'].keys())(*data[0]['role'].values()) data[0]['domains'] = [] data[0]['role'] = fake_role fake_apikey = namedtuple("ApiKey", data[0].keys())(*data[0].values()) apikey_schema = ApiKeySchema(many=True) json.dumps(apikey_schema.dump([fake_apikey])) assert res.status_code == 200 apikey_url_format = "/api/v1/pdnsadmin/apikeys/{0}" apikey_url = apikey_url_format.format(fake_apikey.id) res = client.delete(apikey_url, headers=basic_auth_admin_headers) assert res.status_code == 204 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_delete_zone(self, client, common_data_mock, zone_data, admin_apikey): with patch('powerdnsadmin.lib.utils.requests.request') as mock_delete, \ patch('powerdnsadmin.routes.api.Domain') as mock_domain: mock_domain.return_value.update.return_value = True mock_delete.return_value.status_code = 204 mock_delete.return_value.content = '' zone_url_format = "/api/v1/servers/localhost/zones/{0}" zone_url = zone_url_format.format(zone_data['name'].rstrip(".")) res = client.delete(zone_url, headers=admin_apikey) assert res.status_code == 204
def test_delete_zone(self, client, common_data_mock, zone_data, basic_auth_admin_headers): with patch('app.lib.utils.requests.request') as mock_delete, \ patch('app.blueprints.api.Domain') as mock_domain: mock_domain.return_value.update.return_value = True mock_domain.query.filter.return_value = True mock_delete.return_value.status_code = 204 mock_delete.return_value.content = '' 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_delete_zone(self, client, common_data_mock, zone_data, basic_auth_user_headers): with patch('powerdnsadmin.lib.utils.requests.request') as mock_delete, \ patch('powerdnsadmin.routes.api.Domain') as mock_domain, \ patch('powerdnsadmin.routes.api.get_user_domains') as mock_user_domains: test_domain = Domain(1, name=zone_data['name'].rstrip(".")) mock_domain.return_value.update.return_value = True mock_user_domains.return_value = [test_domain] mock_delete.return_value.status_code = 204 mock_delete.return_value.content = '' 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_user_headers) assert res.status_code == 204
def test_delete_zone(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 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_delete_should_be_successful(client, db): res = client.post( "/users", json=user1, ) res = client.delete("/users/1") q = db.session.query(User).filter_by(id=1).first() assert res.status_code == 204 assert q.firstname == "" assert q.lastname == "" assert q.fiscalcode == "" assert q.phonenumber == "" assert not q.birthdate assert q.email == "deleted"
def test_status_code(self, client): assert client.delete('/rulesets/test').status_code == 400
def test_status_code(self, client): response = client.delete('/rulesets/test', query_string={'session_id': str(ObjectId())}) assert response.status_code == 404
def test_accounts( self, client, initial_data, # noqa: F811 account_data, # noqa: F811 basic_auth_admin_headers): # noqa: F811 account_name = account_data["name"] self.client = client self.basic_auth_admin_headers = basic_auth_admin_headers # Create account res = client.post( "/api/v1/pdnsadmin/accounts", headers=basic_auth_admin_headers, data=json.dumps(account_data), content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 201 # Check account data = self.check_account(account_data) account_id = data["id"] updated = account_data.copy() # Update and check values for upd_key in ["description", "contact", "mail"]: upd_value = "upd-{}".format(account_data[upd_key]) # Update data = {"name": account_name, upd_key: upd_value} res = client.put( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 updated[upd_key] = upd_value # Check data = self.check_account(updated) # Update to defaults res = client.put( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Check account res = client.get( "/api/v1/pdnsadmin/accounts/{}".format(account_name), headers=basic_auth_admin_headers, content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 200 assert len(data) == 1 data = data[0] account_id = data["id"] for key, value in account_data.items(): assert data[key] == value # Cleanup (delete account) res = client.delete( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Get non-existing account (should fail) data = self.get_account(account_name, status_code=404) # Update non-existing account (should fail) res = client.put( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 404 # Delete non-existing account (should fail) res = client.delete( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 404
def test_delete_should_not_be_successful(client): res = client.delete("/users/10") assert res.status_code == 404
def delete(self, client): url = f"/rulesets/{str(self.id)}" query_string = {'session_id': pytest.session.token} return lambda: client.delete(url, query_string=query_string)
def test_account_users( self, client, initial_data, # noqa: F811 account_data, user1_data, # noqa: F811 basic_auth_admin_headers, basic_auth_user_headers): # noqa: F811 self.client = client self.basic_auth_admin_headers = basic_auth_admin_headers # Create account res = client.post( "/api/v1/pdnsadmin/accounts", headers=basic_auth_admin_headers, data=json.dumps(account_data), content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 201 # Check account data = self.check_account(account_data) account_id = data["id"] # Create user1 res = client.post( "/api/v1/pdnsadmin/users", headers=basic_auth_admin_headers, data=json.dumps(user1_data), content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 201 assert len(data) == 1 # Check user user1 = self.check_user(user1_data, data[0]) user1_id = user1["id"] # Assert test account has no users res = client.get( "/api/v1/pdnsadmin/accounts/users/{}".format(account_id), headers=basic_auth_admin_headers, content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 200 assert data == [] # Link user to account (as user, should fail) res = client.put( "/api/v1/pdnsadmin/accounts/users/{}/{}".format( account_id, user1_id), headers=basic_auth_user_headers, content_type="application/json", ) assert res.status_code == 401 # Link user to account (as admin) res = client.put( "/api/v1/pdnsadmin/accounts/users/{}/{}".format( account_id, user1_id), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Unlink user from account (as user, should fail) res = client.delete( "/api/v1/pdnsadmin/accounts/users/{}/{}".format( account_id, user1_id), headers=basic_auth_user_headers, content_type="application/json", ) assert res.status_code == 401 # Unlink user from account (as admin) res = client.delete( "/api/v1/pdnsadmin/accounts/users/{}/{}".format( account_id, user1_id), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Cleanup (delete user) res = client.delete( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Cleanup (delete account) res = client.delete( "/api/v1/pdnsadmin/accounts/{}".format(account_id), data=json.dumps(account_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204
def test_users( self, client, initial_data, # noqa: F811 user1_data, # noqa: F811 basic_auth_admin_headers): # noqa: F811 user1name = user1_data["username"] self.client = client self.basic_auth_admin_headers = basic_auth_admin_headers # Create user (user1) res = client.post( "/api/v1/pdnsadmin/users", headers=basic_auth_admin_headers, data=json.dumps(user1_data), content_type="application/json", ) data = res.get_json(force=True) assert res.status_code == 201 assert len(data) == 1 # Check user user1 = self.check_user(user1_data, data[0]) user1_id = user1["id"] updated = user1_data.copy() # Update and check values for upd_key in ["firstname", "lastname", "email"]: upd_value = "upd-{}".format(user1_data[upd_key]) # Update data = {"username": user1name, upd_key: upd_value} res = client.put( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 updated[upd_key] = upd_value # Check data = self.check_user(updated) # Update to defaults res = client.put( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Check user self.check_user(user1_data) # Cleanup (delete user) res = client.delete( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 204 # Get non-existing user (should fail) data = self.get_user(user1name, status_code=404) # Update non-existing user (should fail) res = client.put( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 404 # Delete non-existing user (should fail) res = client.delete( "/api/v1/pdnsadmin/users/{}".format(user1_id), data=json.dumps(user1_data), headers=basic_auth_admin_headers, content_type="application/json", ) assert res.status_code == 404