Ejemplo n.º 1
0
    def test_build_with_bucket_name_env(self, mock_os, mock_docopt, mock_run):
        def mock_get(key, default):
            if key == "CASPER_BUCKET":
                return "test_bucket"
            return default

        test_args = ["build"]
        mock_os.environ.get.side_effect = mock_get
        mock_docopt.return_value = docopt(doc, test_args)

        main.cli()
        mock_run.assert_called_with(
            aws_profile=None,
            bucket_name="test_bucket",
            build_command=True,
            detailed=False,
            exclude_cloud_res=None,
            exclude_dirs=None,
            exclude_state_res=None,
            loglevel="INFO",
            output_file=None,
            root_dir=".",
            scan_command=False,
            services_list=None,
            state_file="terraform_state",
        )
Ejemplo n.º 2
0
    def test_run_scan_with_fake_service(self, mock_build, mock_scan, _, mock_docopt):
        test_args = ["scan", "--services=ec2,fake"]
        mock_docopt.return_value = docopt(doc, test_args)
        main.cli()
        mock_build.assert_not_called()

        self.assertEqual(1, mock_scan.call_count)
Ejemplo n.º 3
0
    def test_run_scan_all_supported_services(
        self, mock_build, mock_scan, _, mock_docopt
    ):
        test_args = ["scan"]
        mock_docopt.return_value = docopt(doc, test_args)
        main.cli()
        mock_build.assert_not_called()

        self.assertEqual(len(get_supported_services()), mock_scan.call_count)
Ejemplo n.º 4
0
    def test_run_scan_with_output_file(self, mock_scan, _, mock_docopt):
        testfile = "testjson.txt"
        test_args = ["scan", "--services=ec2,iam", f"--output-file={testfile}"]
        mock_docopt.return_value = docopt(doc, test_args)

        main.cli()

        self.assertEqual(2, mock_scan.call_count)
        self.assertTrue(os.path.exists(testfile))

        if os.path.exists(testfile):
            os.remove(testfile)
Ejemplo n.º 5
0
    def test_run_scan(self, mock_build, mock_scan, _, mock_docopt):

        test_args = ["scan", "--services=ec2,iam"]
        mock_docopt.return_value = docopt(doc, test_args)
        mock_scan.side_effect = [
            {"aws_instance": {"count": 1, "ids": ["test_instance"]}},
            {"iam_role": {"count": 2, "ids": ["test_role", "fake_role"]}},
        ]
        main.cli()

        mock_build.assert_not_called()
        self.assertEqual(2, mock_scan.call_count)
Ejemplo n.º 6
0
    def test_run_build(self, mock_build, mock_scan, mock_docopt):
        test_args = [
            "build",
            "--exclude-state-res=fake.state,unknown.state",
            "--exclude-dirs=fakedir1,fakedir2",
        ]
        mock_docopt.return_value = docopt(doc, test_args)

        main.cli()
        mock_build.assert_called_with(
            exclude_directories={"fakedir1", "fakedir2"},
            exclude_state_res={"fake.state", "unknown.state"},
        )
        mock_scan.assert_not_called()
Ejemplo n.º 7
0
    def test_scan_with_rebuild(self, mock_docopt, mock_run):

        test_args = ["scan", "--rebuild", "--exclude-dirs=.fakedir1,.fakedir2"]
        mock_docopt.return_value = docopt(doc, test_args)

        main.cli()
        mock_run.assert_called_with(
            aws_profile=None,
            bucket_name=None,
            build_command=True,
            detailed=False,
            exclude_cloud_res=None,
            exclude_dirs=[".fakedir1", ".fakedir2"],
            exclude_state_res=None,
            loglevel="INFO",
            output_file=None,
            root_dir=".",
            scan_command=True,
            services_list=None,
            state_file="terraform_state",
        )