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

roundup-tracker / roundup / 19051243866
75%

Build:
DEFAULT BRANCH: master
Ran 03 Nov 2025 10:39PM UTC
Jobs 1
Files 118
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

03 Nov 2025 05:42PM UTC coverage: 74.679% (+0.02%) from 74.659%
19051243866

push

github

rouilj
refactor: mke Date class use __slots__

This should be the last slotting for a while.

Instrumenting roundup-admin and the Client class (running under the
waitress wsgi server) shows object count output similar to:

[(('IssueClass', 'roundup.backends.back_anydbm'), 128),
 (('Session', 'roundup.cgi.client'), 128),
 (('Mailer', 'roundup.mailer'), 128),
 (('Password', 'roundup.password'), 220),
 (('LiberalCookie', 'roundup.cgi.client'), 241),
 (('Database', 'roundup.backends.back_anydbm'), 256),
 (('FileClass', 'roundup.backends.back_anydbm'), 256),
 (('Number', 'roundup.hyperdb'), 256),
 (('PythonExpr', 'roundup.cgi.PageTemplates.PythonExpr'), 274),
 (('Proptree', 'roundup.hyperdb'), 276),
 (('Role', 'roundup.security'), 384),
 (('PathExpr', 'roundup.cgi.PageTemplates.Expressions'), 630),
 (('Class', 'roundup.backends.back_anydbm'), 640),
 (('SubPathExpr', 'roundup.cgi.PageTemplates.Expressions'), 645),
 (('Date', 'roundup.hyperdb'), 678),
 (('Link', 'roundup.hyperdb'), 934),
 (('Multilink', 'roundup.hyperdb'), 1024),
 (('Permission', 'roundup.security'), 6784),
 (('TruthDict', 'roundup.support'), 6795),
 (('PrioList', 'roundup.support'), 8192),
 (('Date', 'roundup.date'), 8610)]

where each row is a tuple of (class, module) and the count of
the number of object of that class sorted by number of objects.

I think the major classes that meet the criteria below are all
__slotted__ at this point:

  Is a native roundup class and not a subclass (e.g. LiberalCookie is
     subclass of http.cookies.SimpleCookie)
  Does not touch the database (not hyperdb or backend)
  Is not part of templating
  Is not a top level class that may need runtime attributes/methods
     overwritten e.g Session/Mailer/Password

Some of the excluded classes can be slotted, but they are not low
hanging fruit and requires more class heirarchy changes or more
extensive testing.

1 of 1 new or added line in 1 file covered. (100.0%)

126 existing lines in 4 files now uncovered.

19064 of 25528 relevant lines covered (74.68%)

4.4 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
98.48
0.05% roundup/rate_limit.py
2
97.47
0.07% roundup/support.py
41
83.86
0.16% roundup/security.py
82
88.94
0.02% roundup/rest.py
Jobs
ID Job ID Ran Files Coverage
1 19051243866.1 03 Nov 2025 10:39PM UTC 118
74.68
GitHub Action Run
Source Files on build 19051243866
  • Tree
  • List 118
  • Changed 7
  • Source Changed 7
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #19051243866
  • a492c975 on github
  • Prev Build on master (#19021913441)
  • Next Build on master (#19411080032)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc