Ejemplo n.º 1
0
 def test_user_raises_certificate_hostname_mismatch_error(
         self, mock_init_logic):
     mock_init_logic.fetch_account_from_server = MagicMock(
         side_effect=CertificateHostnameMismatchException)
     init_controller = InitController(ConjurrcData(account=None),
                                      mock_init_logic, False,
                                      self.ssl_verification_metadata)
     with self.assertRaises(CertificateHostnameMismatchException):
         init_controller._get_account_info_if_not_exist()
Ejemplo n.º 2
0
 def test_user_does_not_input_https_will_raises_error(self, mock_input):
     mock_conjurrc_data = ConjurrcData(conjur_url='somehost')
     with self.assertRaises(InvalidURLFormatException) as context:
         init_controller = InitController(mock_conjurrc_data,
                                          self.init_logic,
                                          self.force_overwrite,
                                          self.ssl_verification_metadata)
         init_controller._validate_conjur_url(MOCK_FORMATTED_URL)
     self.assertRegex(str(context.exception), 'Error: undefined behavior')
Ejemplo n.º 3
0
 def test_user_does_not_input_url_raises_error(self, mock_input):
     mock_conjurrc_data = ConjurrcData(conjur_url=None)
     with self.assertRaises(InvalidURLFormatException) as context:
         init_controller = InitController(mock_conjurrc_data,
                                          self.init_logic,
                                          self.force_overwrite,
                                          self.ssl_verification_metadata)
         init_controller._prompt_for_conjur_url()
     self.assertRegex(str(context.exception), 'Error: URL is required')
Ejemplo n.º 4
0
 def test_init_without_host_raises_error(self, mock_init_logic, mock_input):
     mock_init_logic.fetch_account_from_server = MagicMock(
         side_effect=HttpStatusError(status=401))
     mock_conjurrc_data = ConjurrcData()
     with self.assertRaises(MissingRequiredParameterException):
         mock_conjurrc_data.conjur_url = 'https://someurl'
         mock_init_controller = InitController(
             mock_conjurrc_data, mock_init_logic, False,
             self.ssl_verification_metadata)
         mock_init_controller._get_account_info_if_not_exist()
Ejemplo n.º 5
0
 def test_init_host_is_added_to_conjurrc_object(self, mock_init_logic,
                                                mock_input):
     mock_init_logic.fetch_account_from_server = MagicMock(
         side_effect=HttpStatusError(status=401))
     mock_conjurrc_data = ConjurrcData()
     mock_conjurrc_data.conjur_url = "https://someaccount"
     mock_init_controller = InitController(mock_conjurrc_data,
                                           mock_init_logic, False,
                                           self.ssl_verification_metadata)
     mock_init_controller._get_account_info_if_not_exist()
     self.assertEquals(mock_conjurrc_data.conjur_account, 'someaccount')
Ejemplo n.º 6
0
 def test_init_user_trusts_cert_returns_cert(self, mock_input):
     mock_certificate = "cert"
     self.conjurrc_data.conjur_url = "https://someurl"
     self.init_logic.get_certificate = MagicMock(
         return_value=["12:AB", mock_certificate])
     init_controller = InitController(self.conjurrc_data, self.init_logic,
                                      self.force_overwrite,
                                      self.ssl_verification_metadata)
     fetched_certificate = init_controller._get_server_certificate(
         MOCK_FORMATTED_URL)
     self.assertEquals(fetched_certificate, mock_certificate)
Ejemplo n.º 7
0
 def test_user_supplied_certificate_returns_none(self, mock_input):
     cert_file = "/some/path/somepem.pem"
     self.conjurrc_data.cert_file = cert_file
     ssl_verification_data = SslVerificationMetadata(
         SslVerificationMode.CA_BUNDLE, cert_file)
     init_controller = InitController(self.conjurrc_data, self.init_logic,
                                      self.force_overwrite,
                                      ssl_verification_data)
     fetched_certificate = init_controller._get_server_certificate(
         MOCK_FORMATTED_URL)
     assert self.conjurrc_data.cert_file == "/some/path/somepem.pem"
     self.assertEquals(fetched_certificate, None)
Ejemplo n.º 8
0
    def test_init_not_trusting_cert_raises_error(self, mock_input):
        self.conjurrc_data.conjur_url = 'https://someurl'
        ctx = SSL.Context(method=SSL.TLSv1_2_METHOD)
        sock = OpenSSL.SSL.Connection(ctx)
        self.init_logic.connect = MagicMock(return_value=sock)
        self.init_logic.get_certificate = MagicMock(
            return_value=["12:AB", "somecertchain"])

        with self.assertRaises(CertificateNotTrustedException):
            init_controller = InitController(self.conjurrc_data,
                                             self.init_logic,
                                             self.force_overwrite,
                                             self.ssl_verification_metadata)
            init_controller._get_server_certificate(MOCK_FORMATTED_URL)
Ejemplo n.º 9
0
 def test_user_confirms_force_overwrites_writes_conjurrc_to_file(
         self, mock_input, mock_init_logic):
     with redirect_stdout(self.capture_stream):
         self.conjurrc_data.conjur_url = "https://someurl"
         init_controller = InitController(self.conjurrc_data,
                                          mock_init_logic, False,
                                          self.ssl_verification_metadata)
         # Mock that a conjurrc file already exists
         mock_init_logic.write_conjurrc.return_value = False
         init_controller.write_conjurrc()
         self.assertRegex(self.capture_stream.getvalue(),
                          "Configuration written to")
         mock_init_logic.write_conjurrc.assert_called_with(
             '/root/.conjurrc', self.conjurrc_data, True)
         self.assertEquals(mock_init_logic.write_conjurrc.call_count, 2)
Ejemplo n.º 10
0
 def test_init_constructor(self):
     mock_conjurrc_data = None
     mock_init_logic = None
     mock_force = False
     mock_ssl_verification_data = SslVerificationMetadata(
         SslVerificationMode.INSECURE)
     InitController(mock_conjurrc_data, mock_init_logic, mock_force,
                    mock_ssl_verification_data)
     assert InitController.conjurrc_data == mock_conjurrc_data
     assert InitController.init_logic == mock_init_logic
     assert InitController.force_overwrite == mock_force
Ejemplo n.º 11
0
 def test_user_does_not_overwrite_raises_error(self, mock_input):
     init_controller = InitController(ConjurrcData, InitLogic, False,
                                      self.ssl_verification_metadata)
     with self.assertRaises(Exception):
         init_controller.ensure_overwrite_file('someconfig')
Ejemplo n.º 12
0
 def test_user_supplies_cert_writes_to_file_not_called(
         self, mock_init_logic):
     InitController._write_certificate(self, "https://some/cert/path")
     mock_init_logic.write_certificate_to_file.assert_not_called()