def test_filter_in(self): for key, src, exp_in, exp_out in filter_examples: r = utils.filter_in(src, key) self.assert_dicts_are_equal(r, exp_in) for k in exp_out: self.assertFalse(k in r) r = utils.filter_in(src, key, True) if key in src: self.assert_dicts_are_equal(r, {key: src[key]}) else: self.assert_dicts_are_equal(r, dict())
def get_account_meta(self, until=None): """ :param until: (str) formated date :returns: (dict) """ return filter_in(self.get_account_info(until=until), 'X-Account-Meta-')
def get_container_object_meta(self, until=None): """ :param until: (str) formated date :returns: (dict) """ return filter_in(self.get_container_info(until=until), "X-Container-Object-Meta")
def get_account_quota(self): """ :returns: (dict) """ return filter_in( self.get_account_info(), 'X-Account-Policy-Quota', exactMatch=True)
def get_object_meta(self, obj, version=None): """ :param obj: (str) remote object path :param version: (str) :returns: (dict) """ return filter_in(self.get_object_info(obj, version=version), "X-Object-Meta")
def get_object_meta(self, obj): """ :param obj: (str) :returns: (dict) """ r = filter_in(self.get_object_info(obj), 'X-Object-Meta-') reply = {} for (key, val) in r.items(): metakey = key.split('-')[-1] reply[metakey] = val return reply
def get_container_limit(self, container=None): """ :param container: (str) :returns: (dict) """ cnt_back_up = self.container try: self.container = container or cnt_back_up return filter_in(self.get_container_info(), "X-Container-Policy-Quota") finally: self.container = cnt_back_up
def get_container_versioning(self, container=None): """ :param container: (str) :returns: (dict) """ cnt_back_up = self.container try: self.container = container or cnt_back_up return filter_in( self.get_container_info(), 'X-Container-Policy-Versioning') finally: self.container = cnt_back_up
def get_object_sharing(self, obj): """ :param obj: (str) remote object path :returns: (dict) """ r = filter_in(self.get_object_info(obj), "X-Object-Sharing", exactMatch=True) reply = {} if len(r) > 0: perms = r["x-object-sharing"].split(";") for perm in perms: try: perm.index("=") except ValueError: raise ClientError("Incorrect reply format") (key, val) = perm.strip().split("=") reply[key] = val return reply
def get_account_group(self): """ :returns: (dict) """ return filter_in(self.get_account_info(), 'X-Account-Group-')