diff --git a/kallithea/tests/functional/test_admin_permissions.py b/kallithea/tests/functional/test_admin_permissions.py --- a/kallithea/tests/functional/test_admin_permissions.py +++ b/kallithea/tests/functional/test_admin_permissions.py @@ -1,6 +1,8 @@ import time from kallithea.model.db import User, UserIpMap +from kallithea.model.user import UserModel +from kallithea.model.meta import Session from kallithea.tests import * class TestAdminPermissionsController(TestController): @@ -34,13 +36,29 @@ class TestAdminPermissionsController(Tes response.mustcontain('127.0.0.0/24') response.mustcontain('127.0.0.0 - 127.0.0.255') - ## delete + def test_delete_ips(self, auto_clear_ip_permissions): + self.log_user() default_user_id = User.get_default_user().user_id - del_ip_id = UserIpMap.query().filter(UserIpMap.user_id == - default_user_id).first().ip_id + + ## first add + new_ip = '127.0.0.0/24' + user_model = UserModel() + ip_obj = user_model.add_extra_ip(default_user_id, new_ip) + Session().commit() + ## double check that add worked + # IP permissions are cached, need to invalidate this cache explicitly + invalidate_all_caches() + self.app.get(url('admin_permissions_ips'), status=302) + # REMOTE_ADDR must match 127.0.0.0/24 + response = self.app.get(url('admin_permissions_ips'), + extra_environ={'REMOTE_ADDR': '127.0.0.1'}) + response.mustcontain('127.0.0.0/24') + response.mustcontain('127.0.0.0 - 127.0.0.255') + + ## now delete response = self.app.post(url('edit_user_ips_delete', id=default_user_id), - params=dict(del_ip_id=del_ip_id, + params=dict(del_ip_id=ip_obj.ip_id, _authentication_token=self.authentication_token()), extra_environ={'REMOTE_ADDR': '127.0.0.1'})