Home / Class/ TestCaseInsensitiveDict Class — requests Architecture

TestCaseInsensitiveDict Class — requests Architecture

Architecture documentation for the TestCaseInsensitiveDict class in test_requests.py from the requests codebase.

Entity Profile

Dependency Diagram

graph TD
  1af73de2_d781_73a2_a172_8a628d8b069d["TestCaseInsensitiveDict"]
  69ebfd6f_8f0c_4586_0c19_2c348e1a42a2["test_requests.py"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|defined in| 69ebfd6f_8f0c_4586_0c19_2c348e1a42a2
  2ec5bf88_a024_a638_1572_c392589c3266["test_init()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 2ec5bf88_a024_a638_1572_c392589c3266
  edc8e219_d30d_5f5a_4843_eb4326af5dd3["test_docstring_example()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| edc8e219_d30d_5f5a_4843_eb4326af5dd3
  0f43f544_5863_cfc5_50fe_55ae01ceb93e["test_len()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 0f43f544_5863_cfc5_50fe_55ae01ceb93e
  dda1c11f_ce9b_0827_cdb4_284104ae4f44["test_getitem()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| dda1c11f_ce9b_0827_cdb4_284104ae4f44
  adc8115a_3960_46a2_55cb_9d56f1eb3f35["test_fixes_649()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| adc8115a_3960_46a2_55cb_9d56f1eb3f35
  ad8ec29a_12ab_52f4_fb15_233557e628bb["test_delitem()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| ad8ec29a_12ab_52f4_fb15_233557e628bb
  98776b6a_ddb6_6157_aed6_0179db6ed629["test_contains()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 98776b6a_ddb6_6157_aed6_0179db6ed629
  36ff3b08_0db1_2ba5_c108_1947bedc4589["test_get()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 36ff3b08_0db1_2ba5_c108_1947bedc4589
  b37d4763_2f2b_a6a7_376f_bb9752f2eb31["test_update()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| b37d4763_2f2b_a6a7_376f_bb9752f2eb31
  87597d9d_9068_6e0e_98a8_096539e85635["test_update_retains_unchanged()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 87597d9d_9068_6e0e_98a8_096539e85635
  8dd150e0_4440_7e40_70f3_a20616e99370["test_iter()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 8dd150e0_4440_7e40_70f3_a20616e99370
  07bb9c27_f473_4088_7d79_af30720cdd60["test_equality()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 07bb9c27_f473_4088_7d79_af30720cdd60
  7241221c_3586_93ac_0560_9c3af746f71b["test_setdefault()"]
  1af73de2_d781_73a2_a172_8a628d8b069d -->|method| 7241221c_3586_93ac_0560_9c3af746f71b

Relationship Graph

Source Code

tests/test_requests.py lines 2277–2425

class TestCaseInsensitiveDict:
    @pytest.mark.parametrize(
        "cid",
        (
            CaseInsensitiveDict({"Foo": "foo", "BAr": "bar"}),
            CaseInsensitiveDict([("Foo", "foo"), ("BAr", "bar")]),
            CaseInsensitiveDict(FOO="foo", BAr="bar"),
        ),
    )
    def test_init(self, cid):
        assert len(cid) == 2
        assert "foo" in cid
        assert "bar" in cid

    def test_docstring_example(self):
        cid = CaseInsensitiveDict()
        cid["Accept"] = "application/json"
        assert cid["aCCEPT"] == "application/json"
        assert list(cid) == ["Accept"]

    def test_len(self):
        cid = CaseInsensitiveDict({"a": "a", "b": "b"})
        cid["A"] = "a"
        assert len(cid) == 2

    def test_getitem(self):
        cid = CaseInsensitiveDict({"Spam": "blueval"})
        assert cid["spam"] == "blueval"
        assert cid["SPAM"] == "blueval"

    def test_fixes_649(self):
        """__setitem__ should behave case-insensitively."""
        cid = CaseInsensitiveDict()
        cid["spam"] = "oneval"
        cid["Spam"] = "twoval"
        cid["sPAM"] = "redval"
        cid["SPAM"] = "blueval"
        assert cid["spam"] == "blueval"
        assert cid["SPAM"] == "blueval"
        assert list(cid.keys()) == ["SPAM"]

    def test_delitem(self):
        cid = CaseInsensitiveDict()
        cid["Spam"] = "someval"
        del cid["sPam"]
        assert "spam" not in cid
        assert len(cid) == 0

    def test_contains(self):
        cid = CaseInsensitiveDict()
        cid["Spam"] = "someval"
        assert "Spam" in cid
        assert "spam" in cid
        assert "SPAM" in cid
        assert "sPam" in cid
        assert "notspam" not in cid

    def test_get(self):
        cid = CaseInsensitiveDict()
        cid["spam"] = "oneval"
        cid["SPAM"] = "blueval"
        assert cid.get("spam") == "blueval"
        assert cid.get("SPAM") == "blueval"
        assert cid.get("sPam") == "blueval"
        assert cid.get("notspam", "default") == "default"

    def test_update(self):
        cid = CaseInsensitiveDict()
        cid["spam"] = "blueval"
        cid.update({"sPam": "notblueval"})
        assert cid["spam"] == "notblueval"
        cid = CaseInsensitiveDict({"Foo": "foo", "BAr": "bar"})
        cid.update({"fOO": "anotherfoo", "bAR": "anotherbar"})
        assert len(cid) == 2
        assert cid["foo"] == "anotherfoo"
        assert cid["bar"] == "anotherbar"

    def test_update_retains_unchanged(self):
        cid = CaseInsensitiveDict({"foo": "foo", "bar": "bar"})
        cid.update({"foo": "newfoo"})
        assert cid["bar"] == "bar"

Domain

Frequently Asked Questions

What is the TestCaseInsensitiveDict class?
TestCaseInsensitiveDict is a class in the requests codebase, defined in tests/test_requests.py.
Where is TestCaseInsensitiveDict defined?
TestCaseInsensitiveDict is defined in tests/test_requests.py at line 2277.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free