def test_update(self, *args):
        set_module_args(
            dict(
                auth_name='foo',
                auth_pam_idle_timeout='1000',
                auth_pam_validate_ip='off',
                auth_pam_dashboard_timeout='on',
                fast_cgi_timeout=200,
                hostname_lookup='on',
                log_level='error',
                max_clients='20',
                redirect_http_to_https='yes',
                ssl_port=8443,
                provider=dict(
                    server='localhost',
                    password='******',
                    user='******'
                )
            )
        )

        current = Parameters(params=load_fixture('load_sys_httpd.json'))

        module = AnsibleModule(
            argument_spec=self.spec.argument_spec,
            supports_check_mode=self.spec.supports_check_mode
        )
        mm = ModuleManager(module=module)

        # Override methods to force specific logic in the module to happen
        mm.update_on_device = Mock(return_value=True)
        mm.read_current_from_device = Mock(return_value=current)

        results = mm.exec_module()
        assert results['changed'] is True
    def test_update_issue_00522_as_list(self, *args):
        set_module_args(
            dict(
                ssl_cipher_suite=[
                    'ECDHE-RSA-AES128-GCM-SHA256',
                    'ECDHE-RSA-AES256-GCM-SHA384'
                ],
                provider=dict(
                    server='localhost',
                    password='******',
                    user='******'
                )
            )
        )

        current = Parameters(params=load_fixture('load_sys_httpd.json'))

        module = AnsibleModule(
            argument_spec=self.spec.argument_spec,
            supports_check_mode=self.spec.supports_check_mode
        )
        mm = ModuleManager(module=module)

        # Override methods to force specific logic in the module to happen
        mm.update_on_device = Mock(return_value=True)
        mm.read_current_from_device = Mock(return_value=current)

        results = mm.exec_module()
        assert results['changed'] is True
        assert results['ssl_cipher_suite'] == 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384'
    def test_update_issue_00587_default(self, *args):
        set_module_args(
            dict(
                ssl_protocols='default',
                provider=dict(
                    server='localhost',
                    password='******',
                    user='******'
                )
            )
        )

        current = Parameters(params=load_fixture('load_sys_httpd_non_default.json'))

        module = AnsibleModule(
            argument_spec=self.spec.argument_spec,
            supports_check_mode=self.spec.supports_check_mode
        )
        mm = ModuleManager(module=module)

        # Override methods to force specific logic in the module to happen
        mm.update_on_device = Mock(return_value=True)
        mm.read_current_from_device = Mock(return_value=current)

        results = mm.exec_module()
        assert results['changed'] is True
        assert results['ssl_protocols'] == 'default'
    def test_module_parameters(self):
        args = dict(auth_name='BIG-IP',
                    auth_pam_idle_timeout=1200,
                    auth_pam_validate_ip='on')

        p = Parameters(params=args)
        assert p.auth_name == 'BIG-IP'
        assert p.auth_pam_idle_timeout == 1200
        assert p.auth_pam_validate_ip == 'on'
 def test_api_parameters(self):
     args = load_fixture('load_sys_httpd.json')
     p = Parameters(params=args)
     assert p.auth_name == 'BIG-IP'
     assert p.auth_pam_idle_timeout == 1200