def setUp(self): super(AkvoPermissionsTest, self).setUp() self.mock_host_controller = self.mox.CreateMock(RemoteHostController) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.mock_host_controller.feedback = self.mock_feedback self.permissions = AkvoPermissions(self.mock_host_controller)
def create_with(host_controller): permissions = AkvoPermissions(host_controller) return DeploymentHost(FileSystem(host_controller), DeploymentUserVerifier(permissions), permissions, Internet(host_controller), host_controller.feedback)
def create_with(virtualenv_installer_config, host_controller, file_system): return VirtualEnvInstaller(virtualenv_installer_config, host_controller, file_system, AkvoPermissions(host_controller), Internet(host_controller), VirtualEnv(virtualenv_installer_config.rsr_env_path, host_controller), TimeStampFormatter())
def create_with(deployment_host_config, host_controller): return SystemPythonPackageInstaller(deployment_host_config.host_paths, RSRCodebaseConfig(deployment_host_config.repository_branch), SystemPackageInstallationPaths(deployment_host_config.host_paths), PipInstaller.create_with(deployment_host_config, host_controller), FileSystem(host_controller), AkvoPermissions(host_controller), Internet(host_controller), host_controller)
def create_with(virtualenv_installer_config, host_controller): file_system = FileSystem(host_controller) permissions = AkvoPermissions(host_controller) return VirtualEnvDeploymentHost( virtualenv_installer_config, file_system, DeploymentUserVerifier(permissions), permissions, Internet(host_controller), VirtualEnvInstaller.create_with(virtualenv_installer_config, host_controller, file_system), host_controller.feedback)
def create_with(deployment_host_config): host_controller = RemoteHostController() return LinuxHost( DeploymentUserVerifier(AkvoPermissions(host_controller)), PythonInstaller.create_with(host_controller), UbuntuPackageInspector(host_controller), LinuxPackageVerifier.create_with(host_controller), SystemPythonPackageInstaller.create_with(deployment_host_config, host_controller), host_controller.feedback)
class AkvoPermissionsTest(mox.MoxTestBase): def setUp(self): super(AkvoPermissionsTest, self).setUp() self.mock_host_controller = self.mox.CreateMock(RemoteHostController) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.mock_host_controller.feedback = self.mock_feedback self.permissions = AkvoPermissions(self.mock_host_controller) def test_will_confirm_if_user_has_sudo_permission(self): """fab.tests.os.akvo_permissions_test Will confirm if user has sudo permission""" self.mock_host_controller.run("groups joesoap").AndReturn("joesoap accounts admin everyone writers") self.mock_feedback.comment("User [joesoap] has expected sudo permission through membership of the [admin] group") self.mox.ReplayAll() self.permissions.exit_if_user_does_not_have_sudo_permission("joesoap") def test_exit_if_user_does_not_have_sudo_permission(self): """fab.tests.os.akvo_permissions_test Exit if the user does not have sudo permission""" self.mock_host_controller.run("groups joesoap").AndReturn("joesoap accounts everyone writers") expected_user_not_in_group_message = "User [joesoap] should have sudo permission through membership of the [admin] group" self.mock_feedback.abort(expected_user_not_in_group_message).AndRaise(SystemExit(expected_user_not_in_group_message)) self.mox.ReplayAll() with self.assertRaises(SystemExit): self.permissions.exit_if_user_does_not_have_sudo_permission("joesoap") def test_will_confirm_group_membership_if_user_is_member_of_web_group(self): """fab.tests.os.akvo_permissions_test Will confirm group membership if user is a member of the web user group""" self.mock_host_controller.run("groups joesoap").AndReturn("joesoap accounts everyone %s" % AkvoPermissions.WEB_USER_GROUP) self.mock_feedback.comment("User [joesoap] is a member of expected group [%s]" % AkvoPermissions.WEB_USER_GROUP) self.mox.ReplayAll() self.permissions.exit_if_user_is_not_member_of_web_group("joesoap") def test_exit_if_user_is_not_a_member_of_web_group(self): """fab.tests.os.akvo_permissions_test Exit if the user is not a member of the web user group""" self.mock_host_controller.run("groups joesoap").AndReturn("joesoap accounts everyone writers") expected_user_not_in_group_message = "User [joesoap] should be a member of group [%s]" % AkvoPermissions.WEB_USER_GROUP self.mock_feedback.abort(expected_user_not_in_group_message).AndRaise(SystemExit(expected_user_not_in_group_message)) self.mox.ReplayAll() with self.assertRaises(SystemExit): self.permissions.exit_if_user_is_not_member_of_web_group("joesoap") def test_can_set_web_group_ownership_on_specified_directory(self): """fab.tests.os.akvo_permissions_test Can set web group ownership on a specified directory""" web_dir = "/var/tmp/web/apps" self.mock_host_controller.sudo("chown -R root:%s %s" % (AkvoPermissions.WEB_USER_GROUP, web_dir)) self.mox.ReplayAll() self.permissions.set_web_group_ownership_on_directory(web_dir) def test_can_set_web_group_permissions_on_specified_directory(self): """fab.tests.os.akvo_permissions_test Can set web group permissions on a specified directory""" web_dir = "/var/tmp/web/apps" self.mock_host_controller.sudo("chown -R root:%s %s" % (AkvoPermissions.WEB_USER_GROUP, web_dir)) self.mock_host_controller.sudo("chmod -R g+rw %s" % web_dir) self.mock_host_controller.sudo("chmod g+s %s" % web_dir) self.mox.ReplayAll() self.permissions.set_web_group_permissions_on_directory(web_dir)
class AkvoPermissionsTest(mox.MoxTestBase): def setUp(self): super(AkvoPermissionsTest, self).setUp() self.mock_host_controller = self.mox.CreateMock(RemoteHostController) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.mock_host_controller.feedback = self.mock_feedback self.permissions = AkvoPermissions(self.mock_host_controller) def test_will_confirm_if_user_has_sudo_permission(self): """fab.tests.os.akvo_permissions_test Will confirm if user has sudo permission""" self.mock_host_controller.run("groups joesoap").AndReturn( "joesoap accounts admin everyone writers") self.mock_feedback.comment( "User [joesoap] has expected sudo permission through membership of the [admin] group" ) self.mox.ReplayAll() self.permissions.exit_if_user_does_not_have_sudo_permission("joesoap") def test_exit_if_user_does_not_have_sudo_permission(self): """fab.tests.os.akvo_permissions_test Exit if the user does not have sudo permission""" self.mock_host_controller.run("groups joesoap").AndReturn( "joesoap accounts everyone writers") expected_user_not_in_group_message = "User [joesoap] should have sudo permission through membership of the [admin] group" self.mock_feedback.abort(expected_user_not_in_group_message).AndRaise( SystemExit(expected_user_not_in_group_message)) self.mox.ReplayAll() with self.assertRaises(SystemExit): self.permissions.exit_if_user_does_not_have_sudo_permission( "joesoap") def test_will_confirm_group_membership_if_user_is_member_of_web_group( self): """fab.tests.os.akvo_permissions_test Will confirm group membership if user is a member of the web user group""" self.mock_host_controller.run("groups joesoap").AndReturn( "joesoap accounts everyone %s" % AkvoPermissions.WEB_USER_GROUP) self.mock_feedback.comment( "User [joesoap] is a member of expected group [%s]" % AkvoPermissions.WEB_USER_GROUP) self.mox.ReplayAll() self.permissions.exit_if_user_is_not_member_of_web_group("joesoap") def test_exit_if_user_is_not_a_member_of_web_group(self): """fab.tests.os.akvo_permissions_test Exit if the user is not a member of the web user group""" self.mock_host_controller.run("groups joesoap").AndReturn( "joesoap accounts everyone writers") expected_user_not_in_group_message = "User [joesoap] should be a member of group [%s]" % AkvoPermissions.WEB_USER_GROUP self.mock_feedback.abort(expected_user_not_in_group_message).AndRaise( SystemExit(expected_user_not_in_group_message)) self.mox.ReplayAll() with self.assertRaises(SystemExit): self.permissions.exit_if_user_is_not_member_of_web_group("joesoap") def test_can_set_web_group_ownership_on_specified_directory(self): """fab.tests.os.akvo_permissions_test Can set web group ownership on a specified directory""" web_dir = "/var/tmp/web/apps" self.mock_host_controller.sudo( "chown -R root:%s %s" % (AkvoPermissions.WEB_USER_GROUP, web_dir)) self.mox.ReplayAll() self.permissions.set_web_group_ownership_on_directory(web_dir) def test_can_set_web_group_permissions_on_specified_directory(self): """fab.tests.os.akvo_permissions_test Can set web group permissions on a specified directory""" web_dir = "/var/tmp/web/apps" self.mock_host_controller.sudo( "chown -R root:%s %s" % (AkvoPermissions.WEB_USER_GROUP, web_dir)) self.mock_host_controller.sudo("chmod -R g+rw %s" % web_dir) self.mock_host_controller.sudo("chmod g+s %s" % web_dir) self.mox.ReplayAll() self.permissions.set_web_group_permissions_on_directory(web_dir)