• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

PyCalendar / icalendar / 42677816164
98%

Build:
DEFAULT BRANCH: main
Ran 09 Nov 2026 06:53PM UTC
Jobs 7
Files 321
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Nov 2026 06:51PM UTC coverage: 98.064% (+0.008%) from 98.056%
42677816164

push

github

web-flow
Compare `vCalAddress` by email address, ignoring case and `mailto:` (#1901)

* Compare vCalAddress by email address (issue #1896)

* Add tests for vCalAddress email equality (issue #1896)

* Add towncrier fragment for #1896

* Add author attribution and AI disclosure to news fragment

Addresses @angatha's requested changes on #1901.

AI use: Muse Spark 1.3 (muse-spark) by Meta drafted this change under my direction; I reviewed and validated the output and take responsibility for it.

* Coerce plain str to vCalAddress in __eq__ per #1901 review

Per @niccokunzmann's feedback: a plain str is converted via vCalAddress() before comparing, so `my_email in event.attendees` works; construction failure (e.g. newline) returns NotImplemented.

AI use: Muse Spark 1.3 (muse-spark) by Meta drafted this change under my direction; I reviewed and validated the output and take responsibility for it.

* Update tests for str coercion, add params test, ruff format

Reworks str-comparison tests for the new coercion behavior, adds test_equality_ignores_parameters suggested by @DhyeyBuch, and applies ruff format.

AI use: Muse Spark 1.3 (muse-spark) by Meta drafted this change under my direction; I reviewed and validated the output and take responsibility for it.

* fix(prop): add __ne__ to vCalAddress so != negates __eq__

vCalAddress extends str but only overrode __eq__. Without __ne__,
!= fell back to str.__ne__ (plain string comparison) and could
disagree with __eq__: case-insensitively equal addresses were both
== and !=. This also left the ValueError and fallback branches of
__eq__ uncovered. Add __ne__ delegating to __eq__ (propagating
NotImplemented) plus tests for ==/!= consistency and comparison
against non-str types.

* fix(prop): add __ne__ to vCalAddress so != negates __eq__

vCalAddress extends str but only overrode __eq__. Without __ne__,
!= fell back to str.__ne__ (plain string comparison) and could
disagree with __eq__: case-insensitively equal addresses we... (continued)

2096 of 2240 branches covered (93.57%)

Branch coverage included in aggregate %.

89 of 89 new or added lines in 2 files covered. (100.0%)

18930 of 19201 relevant lines covered (98.59%)

6.9 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-pypy3 - 42677816164.1 09 Nov 2026 07:08PM UTC 321
98.03
GitHub Action Run
2 run-3.10 - 42677816164.2 09 Nov 2026 06:53PM UTC 321
98.04
GitHub Action Run
3 run-3.14 - 42677816164.3 09 Nov 2026 06:53PM UTC 321
98.03
GitHub Action Run
4 run-3.13 - 42677816164.4 09 Nov 2026 06:54PM UTC 321
98.04
GitHub Action Run
5 run-3.12 - 42677816164.5 09 Nov 2026 06:54PM UTC 321
98.04
GitHub Action Run
6 run-3.10 (nopytz) - 42677816164.6 09 Nov 2026 06:54PM UTC 321
98.04
GitHub Action Run
7 run-3.11 - 42677816164.7 09 Nov 2026 06:54PM UTC 321
98.03
GitHub Action Run
Source Files on build 42677816164
  • Tree
  • List 321
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #42677816164
  • 73ca9c6c on github
  • Prev Build on main (#42585146853)
  • Next Build on main (#42679625513)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc