Esempio n. 1
0
class TestGetSecret(object):
    data = {
        "secret_name":
        "{}-ares-opaque-secret-2".format(settings.RESOURCE_PREFIX),
        "secret_type":
        "Opaque",
        "opaque_key":
        "opaque_key",
        "opaque_value":
        str(base64.b64encode("opaque_value".encode('utf-8')), 'utf8'),
        "description":
        "多组数据"
    }

    data_list = Secret.data_list

    def setup_class(self):
        self.secret_tool = Secret()
        self.verify_template = Common.generate_jinja_template(
            self, './verify_data/secret/create_response.jinja2')

    def 测试获取保密字典列表_不带limit(self):
        # 测试获取保密字典列表_不带limit
        ret = self.secret_tool.get_secret_list()
        assert ret.status_code == 200, "获取保密字典列表失败:{}".format(ret.text)

        secret_num = len(ret.json()["items"])
        assert secret_num >= len(
            self.data_list), "获取保密字典列表,不传limit时返回失败,预期至少返回{}个,实际返回{}个".format(
                len(self.data_list), secret_num)

    def 测试获取保密字典列表_带limit(self):
        # 测试获取保密字典列表,带limit
        ret = self.secret_tool.get_secret_list(limit=1)
        assert ret.status_code == 200, "获取保密字典列表失败:{}".format(ret.text)

        secret_num = len(ret.json()["items"])
        assert secret_num == 1, "获取保密字典列表,传limit=1时返回失败,预期返回1个,实际返回{}个".format(
            secret_num)

    def 测试_搜索secret(self):
        data = self.data
        data.update({"K8S_NAMESPACE": settings.K8S_NAMESPACE})
        ser = self.secret_tool.search_secret_jinja2_v1(
            ns_name=data["K8S_NAMESPACE"],
            limit=20,
            secret_name=data["secret_name"])
        assert ser.status_code == 200, "没有搜索到{},{}".format(
            data["secret_name"], ser.text)

        value = self.secret_tool.generate_jinja_data(
            "./verify_data/secret/search_secret.jinja2", data)
        assert self.secret_tool.is_sub_dict(value, ser.json()), "搜索secret比对数据失败,返回数据:{},期望数据:{}".\
            format(ser.json(), value)
Esempio n. 2
0
class Testsecret(object):
    data_list = {
        "secret_name": "{}-ares-tls-secret".format(settings.RESOURCE_PREFIX),
        "secret_type": "kubernetes.io/tls",
        "tls_crt": str(base64.b64encode("tlscrt".encode('utf-8')), 'utf8'),
        "tls_key": str(base64.b64encode("tlskey".encode('utf-8')), 'utf8')
    }

    def setup_class(self):
        self.secret_tool = Secret()
        self.verify_template = Common.generate_jinja_template(
            self, './verify_data/secret/create_response.jinja2')
        self.verify_delete_template = Common.generate_jinja_template(
            self, './verify_data/secret/delete_response.jinja2')

    @pytest.mark.prepare
    def 测试TLS保密字典创建(self):
        self.data_list.update({"K8S_NAMESPACE": settings.K8S_NAMESPACE})
        # create manager_secret_basic_auth
        ret = self.secret_tool.create_secret(
            './test_data/secret/create_secret.jinja2', data=self.data_list)

        assert ret.status_code == 201, "创建{}类型保密字典失败:{}".format(
            self.data_list['secret_type'], ret.text)
        value = self.verify_template.render(self.data_list)

        assert self.secret_tool.is_sub_dict(json.loads(value), ret.json()), \
            "创建保密字典比对数据失败,返回数据:{},期望数据:{}".format(ret.json(), json.loads(value))

    @pytest.mark.upgrade
    def 测试获取保密字典列表(self):
        # get maanger_secret list
        ret = self.secret_tool.get_secret_list()
        assert ret.status_code == 200, "获取保密字典列表失败:{}".format(ret.text)

    @pytest.mark.upgrade
    def 测试更新TLS保密字典(self):
        self.data_list.update({
            "K8S_NAMESPACE": settings.K8S_NAMESPACE,
            "description": "update secret"
        })
        # update manager_secret_basic_auth
        ret = self.secret_tool.update_secret(
            self.data_list['secret_name'],
            './test_data/secret/create_secret.jinja2',
            data=self.data_list)
        assert ret.status_code == 200, "更新{}类型保密字典失败:{}".format(
            self.data_list["secret_type"], ret.text)
        value = self.verify_template.render(self.data_list)

        assert self.secret_tool.is_sub_dict(json.loads(value), ret.json()), \
            "更新保密字典比对数据失败,返回数据:{},期望数据:{}".format(ret.json(), json.loads(value))

    @pytest.mark.upgrade
    def 测试获取TLS保密字典详情(self):
        ret = self.secret_tool.get_secret_detail(self.data_list["secret_name"])
        assert ret.status_code == 200, "获取{}类型的保密字典详情失败{}".format(
            self.data_list["secret_type"], ret.text)
        assert self.data_list[
            "secret_name"] in ret.text and "update secret" in ret.text, "{}类型的保密字典更新失败:{}".format(
                ret.text)
        value = self.verify_template.render(self.data_list)

        assert self.secret_tool.is_sub_dict(json.loads(value), ret.json()), \
            "获取保密字典比对数据失败,返回数据:{},期望数据:{}".format(ret.json(), json.loads(value))

    @pytest.mark.delete
    def 测试删除TLS保密字典(self):
        ret = self.secret_tool.delete_secret(self.data_list["secret_name"])
        assert ret.status_code == 200, "删除{}类型的保密字典失败:{}".format(
            self.data_list["secret_type", ret.text])

        assert self.secret_tool.check_exists(
            self.secret_tool.get_secret_url(
                secret_name=self.data_list["secret_name"]), 404), "删除失败"
        value = self.verify_delete_template.render(self.data_list)

        assert self.secret_tool.is_sub_dict(json.loads(value), ret.json()), \
            "删除保密字典比对数据失败,返回数据:{},期望数据:{}".format(ret.json(), json.loads(value))