Exemplo n.º 1
0
    def test_version_init(self):
        """
        Test that a Version object is build correctly
        """

        version = ef_version.Version(self.object_version)

        for attr, expected in self.version_attrs.items():
            actual = getattr(version, attr)
            self.assertEqual(
                expected,
                actual,
                msg="{attr}: expecting {expected!r}, got {actual!r}".format(
                    **locals()))
Exemplo n.º 2
0
    def test_version_init_no_metadata(self):
        """
        Test that a Version object is build correctly with missing metadata
        """

        self.object_version["Metadata"] = {}
        # clear out the metadata fields in version_attrs
        for field in self.metadata_fields:
            self.version_attrs[field] = ""
        version = ef_version.Version(self.object_version)

        for attr, expected in self.version_attrs.items():
            actual = getattr(version, attr)
            self.assertEqual(
                expected,
                actual,
                msg="{attr}: expecting {expected!r}, got {actual!r}".format(
                    **locals()))
Exemplo n.º 3
0
    def test_cmd_rollback_to_ami(self, get_versions, cmd_set):
        '''Test cmd_rollback to a specific ami version'''
        ami_id = "ami-abcdefgh12345678"
        desired_version = ef_version.Version({
            u'Body':
            StringIO.StringIO(ami_id),
            u'LastModified':
            datetime.datetime(2019, 1, 30, 5, 33, 24),
            u'VersionId':
            'b0tRbmuz7HsSMzrPaDxwUORqdQMisi9h',
            u'Metadata': {
                'ef-buildnumber': '256',
                'ef-commithash': '338432d7e23e93dcf957e62598800468a17ff6d1',
                'ef-location': '',
                'ef-modifiedby': 'arn:aws:iam::097710525421:user/ci',
                'ef-version-status': 'stable'
            }
        })

        context = Mock(ef_version.EFVersionContext)
        context.env = "alpha0"
        context.key = "ami-id"
        context.limit = 10
        context.service_name = "playheads"
        context.rollback_to = ami_id

        # inserting at the end so the code doesn't take the first one
        get_versions.return_value = self.versions + [desired_version]

        ef_version.cmd_rollback_to(context)
        self.assertEqual(context.stable, True)
        self.assertEqual(context.value, desired_version.value)
        self.assertEqual(context.build_number, desired_version.build_number)
        self.assertEqual(context.commit_hash, desired_version.commit_hash)
        self.assertEqual(context.location, desired_version.location)

        get_versions.assert_called_once_with(context)
        cmd_set.assert_called_once_with(context)