Skip to content

test: cover empty/single-char repr in multiline output; fix remaining IndexError - #242

Open
koteshyelamati wants to merge 2 commits into
gruns:masterfrom
koteshyelamati:empty-repr-fix
Open

test: cover empty/single-char repr in multiline output; fix remaining IndexError#242
koteshyelamati wants to merge 2 commits into
gruns:masterfrom
koteshyelamati:empty-repr-fix

Conversation

@koteshyelamati

Copy link
Copy Markdown
Contributor

Follow-up to #240 — the tests @Jakeroid asked for, plus one more fix they surfaced.

While writing the tests I found that #240's guard fixes the string-literal check, but an empty repr() still crashes on the multiline path further down: prefix_first_line_indent_remaining() indexes lines[0] on the empty list that ''.splitlines() produces.

Changes:

  • icecream.py: prefix_first_line_indent_remaining() returns [prefix] when the value has no lines (empty repr).

  • test_icecream.py: regression test covering both an empty repr and a single-char repr under multiline output (forced via a long prefix).
    Repro that still failed after fix: guard against IndexError when repr() returns empty string in formatPair() #240:

    from icecream import ic
    class EmptyRepr:
    def repr(self): return ''
    ic.configureOutput(prefix='x' * 100)
    ic(EmptyRepr()) # IndexError: string index out of range

Test suite passes locally apart from two pre-existing failures unrelated to this change (test_enable_disable, test_singledispatch_argument_to_string).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant