Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    def create_with(host_controller):
        permissions = AkvoPermissions(host_controller)

        return DeploymentHost(FileSystem(host_controller),
                              DeploymentUserVerifier(permissions), permissions,
                              Internet(host_controller),
                              host_controller.feedback)
Exemplo n.º 4
0
 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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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)