Beispiel #1
0
    def test_deploy(self, mock_shutil, mock_validate_filepath):
        Serverless.execute_command.return_value = 0
        mock_validate_filepath.return_value = True
        testutil.put_stdin("""
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "stage": "version-v1-dev",
                "deploy": true,
                "artifact_folder": "artifact/lambda",
                "serverless_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute(r'/tmp/put/'), 0)
        mock_shutil.copyfile.assert_called_with(
            r'/tmp/put/source/ci/serverless.yml',
            r'/tmp/put/artifact/lambda/serverless.yml')
        Serverless.execute_command.assert_called_with(
            ['deploy', '--stage', 'version-v1-dev'],
            r'/tmp/put/artifact/lambda')
Beispiel #2
0
    def test_deploy_with_stage_file(self, mock_shutil, mock_io_open,
                                    mock_validate_path):
        Serverless.execute_command.return_value = 0
        mock_file = MagicMock()
        mock_io_open.return_value = mock_file
        mock_file.read.return_value = "release"
        mock_validate_path.return_value = True

        testutil.put_stdin("""
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "stage_file": "naming/stage",
                "deploy": true,
                "artifact_folder": "artifact/lambda",
                "serverless_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute(r'/tmp/put/'), 0)
        mock_shutil.copyfile.assert_called_with(
            r'/tmp/put/source/ci/serverless.yml',
            r'/tmp/put/artifact/lambda/serverless.yml')
        Serverless.execute_command.assert_called_with(
            ['deploy', '--stage', 'release'], r'/tmp/put/artifact/lambda')
Beispiel #3
0
    def test_remove_with_stage_file(self, mock_io_open, mock_validate_path,
                                    mock_s3blanker):
        Serverless.execute_command.return_value = 0
        mock_file = MagicMock()
        mock_io_open.return_value = mock_file
        mock_file.read.return_value = "release"
        mock_validate_path.return_value = True
        mock_class_s3blanker = mock_s3blanker()

        testutil.put_stdin("""
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "stage_file": "release",
                "remove": true,
                "serverless_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute(r'/tmp/put/'), 0)
        Serverless.execute_command.assert_called_with(
            ['remove', '--stage', 'release'], r'/tmp/put/source/ci')
        mock_class_s3blanker.empty_buckets_for_serverless_config.assert_called_with(
            '/tmp/put/source/ci/serverless.yml', 'release')
    def test_deploy_with_stage_file(self, mock_ioutil, mock_validate_path, mock_files):
        EBDeployer.execute_command.return_value = 0
        mock_validate_path.return_value = True
        mock_ioutil.read_file.return_value = "dev"
        mock_files.return_value = ['package-1.0.0.zip', 'foo.txt', 'bar.zip', 'package-1.0.0.jar']


        testutil.put_stdin(
            """
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "env_file": "naming/env",
                "deploy": true,
                "artifact_file": "artifact/package-(.*).zip",
                "config_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute(r'/tmp/put/'), 0)
        EBDeployer.execute_command.assert_called_with(['eb_deploy',
                                                        '-p', r'/tmp/put/artifact/package-1.0.0.zip',
                                                        '-e', 'dev'],
                                                       r'/tmp/put/source/ci/')
    def test_invalid_json(self):
        testutil.put_stdin('{"sourcez":{'
                           '"apiKey":"apiKey123",'
                           '"secretKey":"secretKey321'
                           '"},'
                           '"version":{"version":"version-v1-dev"}}')

        self.assertEqual(out.execute(""), -1)
    def test_valid_json_invalid_credentials_or_bucket_does_not_exist(
            self, mock_s3client):
        # Mock Setup
        mock_returned_s3client = mock_s3client()
        mock_returned_s3client.does_bucket_exist.return_value = False

        testutil.put_stdin(payloads.out_payload)
        self.assertEqual(-1, out.execute(""))
Beispiel #7
0
    def test_params_required_json(self):
        testutil.put_stdin("""
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              }
            }
            """)

        self.assertEqual(out.execute('/'), -1)
    def test_params_required_json(self):
        testutil.put_stdin("""
            {
              "source": {
                "user": "******",
                "password": "******",
                "host": "hostname"
              }
            }
            """)

        self.assertEqual(out.execute('/'), -1)
Beispiel #9
0
    def test_deploy_artifact_folder_needed(self):
        Serverless.execute_command.return_value = 0

        testutil.put_stdin("""
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "stage": "version-v1-dev",
                "deploy": true,
                "serverless_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute('/'), -1)
    def test_deploy_artifact_file_needed(self):
        EBDeployer.execute_command.return_value = 0

        testutil.put_stdin(
            """
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "env": "dev",
                "deploy": true,
                "config_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute('/'), -1)
    def test_remove(self, mock_validate_path):
        EBDeployer.execute_command.return_value = 0
        mock_validate_path.return_value = True

        testutil.put_stdin(
            """
            {
              "source": {
                "access_key_id": "apiKey123",
                "secret_access_key": "secretKey321"
              },
              "params": {
                "env": "dev",
                "remove": true,
                "config_file": "source/ci/"
              }
            }
            """)

        self.assertEqual(out.execute(r'/tmp/put/'), 0)
        EBDeployer.execute_command.assert_called_with(['eb_deploy',
                                                        '-e', 'dev', '-d'],
                                                       r'/tmp/put/source/ci/')
    def test_valid_json(self, mock_s3client, mock_archive_util, mock_io_util,
                        mock_os_remove):
        # Mock Setup
        mock_returned_s3client = mock_s3client()
        mock_returned_s3client.does_bucket_exist.return_value = True
        mock_io_util.return_value = "1.0.1"

        testutil.put_stdin(payloads.out_payload)

        io = testutil.mock_stdout()
        self.assertEqual(0, out.execute("some/directory"))

        # Mock Assertions
        mock_io_util.assert_called_once_with("some/directory/version/name")
        mock_archive_util.assert_called_once_with("release-1.0.1.tar.gz",
                                                  "some/directory/artifact/")
        mock_returned_s3client.upload_file.assert_called_once_with(
            "bucketName", "release-1.0.1.tar.gz",
            "some/directory/artifact/release-1.0.1.tar.gz")
        mock_os_remove.assert_called_once_with(
            "some/directory/artifact/release-1.0.1.tar.gz")

        self.assertEqual('{"version": {"version": "release-1.0.1.tar.gz"}}',
                         testutil.read_from_io(io))