Improve string representation of matcher in allure report#170
Improve string representation of matcher in allure report#170offbyone merged 5 commits intohamcrest:mainfrom
Conversation
|
I would prefer something closer to this: def __repr__(self) -> str:
"""Returns the description."""
return "<{}({})>".format(self.__class__.__name__, truncate(self.out, 60))Basically, I don't think losing the type info is a good plan, and having the debug repr be an unbounded string also has issues. You'd need to implement the Also, if you do this, please put a oneliner in |
|
I've fixed the code according to you remarks. Not sure about the reason for CI failure. Could you please help me with that? |
|
Re the CI failure - if you run I think this needs a test of some kind, too. |
|
Tests (In def testMatcherReprShouldDescribeMatcher(self):
assert repr(FailingBaseMatcher()) == "FailingBaseMatcher(SOME DESCRIPTION)"
def testMatcherReprShouldTruncateLongDescription(self):
class LongDescriptionMatcher(BaseMatcher):
def describe_to(self, description):
description.append_text("1234 " * 13)
assert repr(LongDescriptionMatcher()) == "LongDescriptionMatcher(1234 1234 1234 1234 1234 1234 1234 1234 1234 1234 1234 ...)" |
|
The PR is just awaiting tests and a change log AFAIC. |
|
Hello guys! Sorry for the delay. Could you please take a look and give your comments if needed? |
|
Absolutely - I'll take a look on Monday, when I'm back at my computer. |
Changelog: ========= Features ------------- - * Adds the tests to the sdist. Fixed by openembedded#150 openembedded#141 <hamcrest/PyHamcrest#141> - * Update the CI to test Python 3.10 openembedded#160 <hamcrest/PyHamcrest#160> - * Add pretty string representation for matchers objects openembedded#170 <hamcrest/PyHamcrest#170> Bugfixes ------------ - * Test coverage is now submitted to codecov.io. Fixed by openembedded#150 openembedded#135 <hamcrest/PyHamcrest#135> - Change to the ``has_entry()`` matcher - if exactly one key matches, but the value does not, report only the mismatching value. Fixed by openembedded#157 openembedded#156 <hamcrest/PyHamcrest#156> - * Fix is_() type annotations openembedded#180 <hamcrest/PyHamcrest#180> Misc ------------- - openembedded#150 <hamcrest/PyHamcrest#150> openembedded#159 <hamcrest/PyHamcrest#159> openembedded#162 <hamcrest/PyHamcrest#162> openembedded#163 <hamcrest/PyHamcrest#163> openembedded#166 <hamcrest/PyHamcrest#166> openembedded#175 <hamcrest/PyHamcrest#175> Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Changelog: ========= Features ------------- - * Adds the tests to the sdist. Fixed by openembedded#150 openembedded#141 <hamcrest/PyHamcrest#141> - * Update the CI to test Python 3.10 openembedded#160 <hamcrest/PyHamcrest#160> - * Add pretty string representation for matchers objects openembedded#170 <hamcrest/PyHamcrest#170> Bugfixes ------------ - * Test coverage is now submitted to codecov.io. Fixed by openembedded#150 openembedded#135 <hamcrest/PyHamcrest#135> - Change to the ``has_entry()`` matcher - if exactly one key matches, but the value does not, report only the mismatching value. Fixed by openembedded#157 openembedded#156 <hamcrest/PyHamcrest#156> - * Fix is_() type annotations openembedded#180 <hamcrest/PyHamcrest#180> Misc ------------- - openembedded#150 <hamcrest/PyHamcrest#150> openembedded#159 <hamcrest/PyHamcrest#159> openembedded#162 <hamcrest/PyHamcrest#162> openembedded#163 <hamcrest/PyHamcrest#163> openembedded#166 <hamcrest/PyHamcrest#166> openembedded#175 <hamcrest/PyHamcrest#175> Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Changelog: ========= Features ------------- - * Adds the tests to the sdist. Fixed by openembedded#150 openembedded#141 <hamcrest/PyHamcrest#141> - * Update the CI to test Python 3.10 openembedded#160 <hamcrest/PyHamcrest#160> - * Add pretty string representation for matchers objects openembedded#170 <hamcrest/PyHamcrest#170> Bugfixes ------------ - * Test coverage is now submitted to codecov.io. Fixed by openembedded#150 openembedded#135 <hamcrest/PyHamcrest#135> - Change to the ``has_entry()`` matcher - if exactly one key matches, but the value does not, report only the mismatching value. Fixed by openembedded#157 openembedded#156 <hamcrest/PyHamcrest#156> - * Fix is_() type annotations openembedded#180 <hamcrest/PyHamcrest#180> Misc ------------- - openembedded#150 <hamcrest/PyHamcrest#150> openembedded#159 <hamcrest/PyHamcrest#159> openembedded#162 <hamcrest/PyHamcrest#162> openembedded#163 <hamcrest/PyHamcrest#163> openembedded#166 <hamcrest/PyHamcrest#166> openembedded#175 <hamcrest/PyHamcrest#175> Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Changelog: ========= Features ------------- - * Adds the tests to the sdist. Fixed by #150 #141 <hamcrest/PyHamcrest#141> - * Update the CI to test Python 3.10 #160 <hamcrest/PyHamcrest#160> - * Add pretty string representation for matchers objects #170 <hamcrest/PyHamcrest#170> Bugfixes ------------ - * Test coverage is now submitted to codecov.io. Fixed by #150 #135 <hamcrest/PyHamcrest#135> - Change to the ``has_entry()`` matcher - if exactly one key matches, but the value does not, report only the mismatching value. Fixed by #157 #156 <hamcrest/PyHamcrest#156> - * Fix is_() type annotations #180 <hamcrest/PyHamcrest#180> Misc ------------- - #150 <hamcrest/PyHamcrest#150> #159 <hamcrest/PyHamcrest#159> #162 <hamcrest/PyHamcrest#162> #163 <hamcrest/PyHamcrest#163> #166 <hamcrest/PyHamcrest#166> #175 <hamcrest/PyHamcrest#175> Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Matchers in allure report now look like:
<hamcrest.core.core.isnot.IsNot object at 0x7f7262d17c40>
PR purpose:
Make it look more pretty