TestSuperLen Class — requests Architecture
Architecture documentation for the TestSuperLen class in test_utils.py from the requests codebase.
Entity Profile
Dependency Diagram
graph TD 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59["TestSuperLen"] 5828793e_be5b_8952_37f1_338fd4634a1a["test_utils.py"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|defined in| 5828793e_be5b_8952_37f1_338fd4634a1a 5e22cd56_435e_b599_a234_8ab2746051dd["test_io_streams()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 5e22cd56_435e_b599_a234_8ab2746051dd b19eb58e_4c8f_70fd_a119_73f4b4581958["test_super_len_correctly_calculates_len_of_partially_read_file()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| b19eb58e_4c8f_70fd_a119_73f4b4581958 09208fb1_7486_ca2b_21ad_feccb420ecdc["test_super_len_handles_files_raising_weird_errors_in_tell()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 09208fb1_7486_ca2b_21ad_feccb420ecdc ce653a5f_af8a_44b5_d65c_03181338389d["test_super_len_tell_ioerror()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| ce653a5f_af8a_44b5_d65c_03181338389d 4ba448fb_17c2_de0e_0cb4_8b5c110e0d81["test_string()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 4ba448fb_17c2_de0e_0cb4_8b5c110e0d81 2843fb58_0e73_11c6_26fd_57bd1c24debc["test_file()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 2843fb58_0e73_11c6_26fd_57bd1c24debc 64042906_7513_c90f_aa1e_743a7367012c["test_tarfile_member()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 64042906_7513_c90f_aa1e_743a7367012c b6f8b247_268e_a3e5_ebdd_fab690101fcb["test_super_len_with__len__()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| b6f8b247_268e_a3e5_ebdd_fab690101fcb d213257a_5401_8d06_7fac_ec033b83bef5["test_super_len_with_no__len__()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| d213257a_5401_8d06_7fac_ec033b83bef5 11adc55f_0a3e_d39b_91ed_94cc21ad13f2["test_super_len_with_tell()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 11adc55f_0a3e_d39b_91ed_94cc21ad13f2 704a7d81_ef72_0404_36c8_ae2e0169d44e["test_super_len_with_fileno()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| 704a7d81_ef72_0404_36c8_ae2e0169d44e ba569ea6_45dc_ecf8_0aeb_95d8e44816e3["test_super_len_with_no_matches()"] 81f7dd40_8de4_e5e3_d0f0_3d84ce7fbb59 -->|method| ba569ea6_45dc_ecf8_0aeb_95d8e44816e3
Relationship Graph
Source Code
tests/test_utils.py lines 50–153
class TestSuperLen:
@pytest.mark.parametrize(
"stream, value",
(
(StringIO.StringIO, "Test"),
(BytesIO, b"Test"),
pytest.param(
cStringIO, "Test", marks=pytest.mark.skipif("cStringIO is None")
),
),
)
def test_io_streams(self, stream, value):
"""Ensures that we properly deal with different kinds of IO streams."""
assert super_len(stream()) == 0
assert super_len(stream(value)) == 4
def test_super_len_correctly_calculates_len_of_partially_read_file(self):
"""Ensure that we handle partially consumed file like objects."""
s = StringIO.StringIO()
s.write("foobarbogus")
assert super_len(s) == 0
@pytest.mark.parametrize("error", [IOError, OSError])
def test_super_len_handles_files_raising_weird_errors_in_tell(self, error):
"""If tell() raises errors, assume the cursor is at position zero."""
class BoomFile:
def __len__(self):
return 5
def tell(self):
raise error()
assert super_len(BoomFile()) == 0
@pytest.mark.parametrize("error", [IOError, OSError])
def test_super_len_tell_ioerror(self, error):
"""Ensure that if tell gives an IOError super_len doesn't fail"""
class NoLenBoomFile:
def tell(self):
raise error()
def seek(self, offset, whence):
pass
assert super_len(NoLenBoomFile()) == 0
def test_string(self):
assert super_len("Test") == 4
@pytest.mark.parametrize(
"mode, warnings_num",
(
("r", 1),
("rb", 0),
),
)
def test_file(self, tmpdir, mode, warnings_num, recwarn):
file_obj = tmpdir.join("test.txt")
file_obj.write("Test")
with file_obj.open(mode) as fd:
assert super_len(fd) == 4
assert len(recwarn) == warnings_num
def test_tarfile_member(self, tmpdir):
file_obj = tmpdir.join("test.txt")
file_obj.write("Test")
tar_obj = str(tmpdir.join("test.tar"))
with tarfile.open(tar_obj, "w") as tar:
tar.add(str(file_obj), arcname="test.txt")
with tarfile.open(tar_obj) as tar:
member = tar.extractfile("test.txt")
assert super_len(member) == 4
def test_super_len_with__len__(self):
foo = [1, 2, 3, 4]
len_foo = super_len(foo)
assert len_foo == 4
Domain
Defined In
Source
Frequently Asked Questions
What is the TestSuperLen class?
TestSuperLen is a class in the requests codebase, defined in tests/test_utils.py.
Where is TestSuperLen defined?
TestSuperLen is defined in tests/test_utils.py at line 50.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free