Ejemplo n.º 1
0
    def make_headers(self, headers):

        headers = CaselessDict(headers)
        if 'user-agent' in headers:
            self.user_agent = headers.pop('user-agent')
        self.cookies = self.make_cookies(headers.pop('cookie', {}))
        self.headers = headers
Ejemplo n.º 2
0
    def test_caseless(self):
        d = CaselessDict()
        d['key_Lower'] = 1
        self.assertEqual(d['KEy_loWer'], 1)
        self.assertEqual(d.get('KEy_loWer'), 1)

        d['KEY_LOWER'] = 3
        self.assertEqual(d['key_Lower'], 3)
        self.assertEqual(d.get('key_Lower'), 3)
Ejemplo n.º 3
0
    def test_caseless(self):
        d = CaselessDict()
        d["key_Lower"] = 1
        self.assertEqual(d["KEy_loWer"], 1)
        self.assertEqual(d.get("KEy_loWer"), 1)

        d["KEY_LOWER"] = 3
        self.assertEqual(d["key_Lower"], 3)
        self.assertEqual(d.get("key_Lower"), 3)
Ejemplo n.º 4
0
    def test_setdefault(self):
        d = CaselessDict({'a': 1, 'b': 2})

        r = d.setdefault('A', 5)
        self.assertEqual(r, 1)
        self.assertEqual(d['A'], 1)

        r = d.setdefault('c', 5)
        self.assertEqual(r, 5)
        self.assertEqual(d['C'], 5)
Ejemplo n.º 5
0
    def test_setdefault(self):
        d = CaselessDict({"a": 1, "b": 2})

        r = d.setdefault("A", 5)
        self.assertEqual(r, 1)
        self.assertEqual(d["A"], 1)

        r = d.setdefault("c", 5)
        self.assertEqual(r, 5)
        self.assertEqual(d["C"], 5)
Ejemplo n.º 6
0
    def test_fromkeys(self):
        keys = ("a", "b")

        d = CaselessDict.fromkeys(keys)
        self.assertEqual(d["A"], None)
        self.assertEqual(d["B"], None)

        d = CaselessDict.fromkeys(keys, 1)
        self.assertEqual(d["A"], 1)
        self.assertEqual(d["B"], 1)

        instance = CaselessDict()
        d = instance.fromkeys(keys)
        self.assertEqual(d["A"], None)
        self.assertEqual(d["B"], None)

        d = instance.fromkeys(keys, 1)
        self.assertEqual(d["A"], 1)
        self.assertEqual(d["B"], 1)
Ejemplo n.º 7
0
    def test_fromkeys(self):
        keys = ('a', 'b')

        d = CaselessDict.fromkeys(keys)
        self.assertEqual(d['A'], None)
        self.assertEqual(d['B'], None)

        d = CaselessDict.fromkeys(keys, 1)
        self.assertEqual(d['A'], 1)
        self.assertEqual(d['B'], 1)

        instance = CaselessDict()
        d = instance.fromkeys(keys)
        self.assertEqual(d['A'], None)
        self.assertEqual(d['B'], None)

        d = instance.fromkeys(keys, 1)
        self.assertEqual(d['A'], 1)
        self.assertEqual(d['B'], 1)
Ejemplo n.º 8
0
 def test_pop(self):
     d = CaselessDict()
     d['a'] = 1
     self.assertEqual(d.pop('A'), 1)
     self.assertRaises(KeyError, d.pop, 'A')
Ejemplo n.º 9
0
 def test_getdefault(self):
     d = CaselessDict()
     self.assertEqual(d.get('c', 5), 5)
     d['c'] = 10
     self.assertEqual(d.get('c', 5), 10)
Ejemplo n.º 10
0
 def test_contains(self):
     d = CaselessDict()
     d["a"] = 1
     assert "a" in d
     assert d.has_key("a")
Ejemplo n.º 11
0
 def test_copy(self):
     h1 = CaselessDict({'header1': 'value'})
     h2 = copy.copy(h1)
     self.assertEqual(h1, h2)
     self.assertEqual(h1.get('header1'), h2.get('header1'))
     assert isinstance(h2, CaselessDict)
Ejemplo n.º 12
0
 def test_pop(self):
     d = CaselessDict()
     d["a"] = 1
     self.assertEqual(d.pop("A"), 1)
     self.assertRaises(KeyError, d.pop, "A")
Ejemplo n.º 13
0
 def test_delete(self):
     d = CaselessDict({'key_lower': 1})
     del d['key_LOWER']
     self.assertRaises(KeyError, d.__getitem__, 'key_LOWER')
     self.assertRaises(KeyError, d.__getitem__, 'key_lower')
Ejemplo n.º 14
0
 def test_contains(self):
     d = CaselessDict()
     d['a'] = 1
     assert 'a' in d
     assert d.has_key('a')
Ejemplo n.º 15
0
 def test_copy(self):
     h1 = CaselessDict({'header1': 'value'})
     h2 = copy.copy(h1)
     self.assertEqual(h1, h2)
     self.assertEqual(h1.get('header1'), h2.get('header1'))
     assert isinstance(h2, CaselessDict)
Ejemplo n.º 16
0
 def test_getdefault(self):
     d = CaselessDict()
     self.assertEqual(d.get('c', 5), 5)
     d['c'] = 10
     self.assertEqual(d.get('c', 5), 10)
Ejemplo n.º 17
0
 def test_getdefault(self):
     d = CaselessDict()
     self.assertEqual(d.get("c", 5), 5)
     d["c"] = 10
     self.assertEqual(d.get("c", 5), 10)
Ejemplo n.º 18
0
 def test_pop(self):
     d = CaselessDict()
     d['a'] = 1
     self.assertEqual(d.pop('A'), 1)
     self.assertRaises(KeyError, d.pop, 'A')
Ejemplo n.º 19
0
 def test_contains(self):
     d = CaselessDict()
     d['a'] = 1
     assert 'a' in d
Ejemplo n.º 20
0
 def test_init_dict(self):
     seq = {'red': 1, 'black': 3}
     d = CaselessDict(seq)
     self.assertEqual(d['red'], 1)
     self.assertEqual(d['black'], 3)
Ejemplo n.º 21
0
 def test_copy(self):
     h1 = CaselessDict({"header1": "value"})
     h2 = copy.copy(h1)
     self.assertEqual(h1, h2)
     self.assertEqual(h1.get("header1"), h2.get("header1"))
     assert isinstance(h2, CaselessDict)
Ejemplo n.º 22
0
 def test_init_pair_sequence(self):
     seq = (('red', 1), ('black', 3))
     d = CaselessDict(seq)
     self.assertEqual(d['red'], 1)
     self.assertEqual(d['black'], 3)
Ejemplo n.º 23
0
 def _headers_to_botocore_kwargs(self, headers):
     """ Convert headers to botocore keyword agruments.
     """
     # This is required while we need to support both boto and botocore.
     mapping = CaselessDict({
         'Content-Type':
         'ContentType',
         'Cache-Control':
         'CacheControl',
         'Content-Disposition':
         'ContentDisposition',
         'Content-Encoding':
         'ContentEncoding',
         'Content-Language':
         'ContentLanguage',
         'Content-Length':
         'ContentLength',
         'Content-MD5':
         'ContentMD5',
         'Expires':
         'Expires',
         'X-Amz-Grant-Full-Control':
         'GrantFullControl',
         'X-Amz-Grant-Read':
         'GrantRead',
         'X-Amz-Grant-Read-ACP':
         'GrantReadACP',
         'X-Amz-Grant-Write-ACP':
         'GrantWriteACP',
         'X-Amz-Object-Lock-Legal-Hold':
         'ObjectLockLegalHoldStatus',
         'X-Amz-Object-Lock-Mode':
         'ObjectLockMode',
         'X-Amz-Object-Lock-Retain-Until-Date':
         'ObjectLockRetainUntilDate',
         'X-Amz-Request-Payer':
         'RequestPayer',
         'X-Amz-Server-Side-Encryption':
         'ServerSideEncryption',
         'X-Amz-Server-Side-Encryption-Aws-Kms-Key-Id':
         'SSEKMSKeyId',
         'X-Amz-Server-Side-Encryption-Context':
         'SSEKMSEncryptionContext',
         'X-Amz-Server-Side-Encryption-Customer-Algorithm':
         'SSECustomerAlgorithm',
         'X-Amz-Server-Side-Encryption-Customer-Key':
         'SSECustomerKey',
         'X-Amz-Server-Side-Encryption-Customer-Key-Md5':
         'SSECustomerKeyMD5',
         'X-Amz-Storage-Class':
         'StorageClass',
         'X-Amz-Tagging':
         'Tagging',
         'X-Amz-Website-Redirect-Location':
         'WebsiteRedirectLocation',
     })
     extra = {}
     for key, value in headers.items():
         try:
             kwarg = mapping[key]
         except KeyError:
             raise TypeError(f'Header "{key}" is not supported by botocore')
         else:
             extra[kwarg] = value
     return extra