ViUR-Core Coverage Report: 37%

Files Functions Classes

coverage.py v7.16.1, created at 2026-09-25 15:02 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
/home/runner/work/viur-core/viur-core/viur/src/viur/core/__init__.py (no class)   20% 166 133 0   3% 88 3   14%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/__init__.py (no class)   92% 48 4 0   100% 6 0   93%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/address.py AddressRelSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/address.py AddressBone   84% 31 5 0   60% 10 0   78%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/address.py (no class)   100% 29 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py ReadFromClientErrorSeverity   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py ReadFromClientError   100% 3 0 0   100% 2 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py ReadFromClientException   100% 8 0 0   100% 4 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py UniqueLockMethod   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py UniqueValue   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py MultipleConstraints   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py ComputeMethod   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py ComputeInterval   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py Compute   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py CloneStrategy   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py CloneCustomFunc   100% 0 0 1   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py CloneBehavior   50% 4 2 0   50% 4 2   50%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py BaseBone   47% 662 354 0   42% 478 75   44%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/base.py (no class)   97% 158 5 2   25% 4 1   95%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/boolean.py BooleanBone   73% 37 10 0   65% 26 5   70%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/boolean.py (no class)   100% 14 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/captcha.py CaptchaBone   0% 47 47 0   0% 20 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/captcha.py (no class)   94% 16 1 0   50% 2 1   89%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/code.py CodeBone   100% 7 0 0   50% 2 1   89%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/code.py LogicsBone   11% 9 8 0   0% 4 0   8%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/code.py JinjaBone   0% 9 9 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/code.py PythonBone   0% 6 6 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/code.py (no class)   100% 17 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/color.py ColorBone   96% 23 1 0   93% 14 1   95%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/color.py (no class)   100% 10 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/credential.py CredentialBone   65% 17 6 0   80% 10 0   70%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/credential.py (no class)   100% 9 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/date.py DateBone   54% 142 66 0   42% 86 22   49%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/date.py (no class)   100% 21 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/email.py EmailBone   100% 25 0 0   100% 16 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/email.py (no class)   100% 21 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/file.py FileBone   15% 95 81 0   17% 60 0   15%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/file.py (no class)   39% 61 37 0   0% 22 0   29%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/image.py ImageBoneRelSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/image.py ImageBone   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/image.py (no class)   100% 11 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/json.py JsonBone   81% 26 5 0   67% 6 0   78%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/json.py (no class)   100% 14 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/key.py KeyBone   8% 76 70 0   2% 42 1   6%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/key.py (no class)   100% 14 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/numeric.py NumericBone   51% 156 76 0   49% 104 7   50%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/numeric.py (no class)   97% 31 1 0   50% 2 1   94%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/password.py PasswordBone   63% 41 15 0   65% 26 1   64%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/password.py (no class)   100% 29 0 0   50% 4 2   94%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/phone.py PhoneBone   96% 24 1 0   100% 16 0   98%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/phone.py (no class)   100% 15 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/randomslice.py RandomSliceBone   11% 47 42 0   17% 12 0   12%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/randomslice.py (no class)   100% 13 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/raw.py RawBone   90% 10 1 0   88% 8 1   89%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/raw.py (no class)   100% 7 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/record.py RecordBone   30% 88 62 0   31% 62 3   30%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/record.py (no class)   96% 23 1 0   50% 2 1   92%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/relational.py RelationalConsistency   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/relational.py RelationalUpdateLevel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/relational.py RelDict   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/relational.py RelationalBone   4% 512 492 0   3% 344 6   4%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/relational.py (no class)   98% 56 1 0   50% 2 1   97%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/select.py SelectBone   86% 43 6 0   77% 30 3   82%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/select.py (no class)   88% 26 3 0   50% 2 1   86%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/selectcountry.py SelectCountryBone   100% 27 0 0   83% 18 3   93%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/selectcountry.py (no class)   100% 16 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/sortindex.py SortIndexBone   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/sortindex.py (no class)   100% 7 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/spam.py SpamBone   0% 32 32 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/spam.py (no class)   100% 15 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/spatial.py SpatialBone   76% 135 32 0   85% 40 0   78%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/spatial.py (no class)   100% 32 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/string.py StringBone   51% 128 63 0   49% 96 7   50%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/string.py (no class)   97% 31 1 0   50% 2 1   94%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/text.py HtmlBoneConfiguration   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/text.py CollectBlobKeys   0% 8 8 0   0% 8 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/text.py HtmlSerializer   55% 118 53 0   39% 84 17   49%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/text.py TextBone   63% 57 21 0   57% 42 4   61%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/text.py TextBone.__undefinedC__   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/text.py (no class)   100% 40 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/treeleaf.py TreeLeafBone   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/treeleaf.py (no class)   100% 4 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/treenode.py TreeNodeBone   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/treenode.py (no class)   100% 3 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/uid.py UidBone   94% 16 1 0   90% 10 1   92%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/uid.py (no class)   92% 26 2 0   67% 6 2   88%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/uri.py UriBone   76% 110 26 0   72% 92 18   74%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/uri.py (no class)   100% 18 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/user.py UserBone   0% 16 16 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/user.py (no class)   100% 6 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/cache.py UserSensitive   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/cache.py DefaultSettings   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/cache.py ResponseCache   0% 205 205 0   0% 98 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/cache.py FlushCacheTask   0% 3 3 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/cache.py FlushCacheTask.dataSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/cache.py (no class)   75% 97 24 0   5% 22 1   62%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py ConfigType   75% 65 16 0   76% 38 3   76%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Admin   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Database   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Security   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Debug   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Email   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py History   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py I18N   75% 4 1 0   100% 0 0   75%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py User   33% 6 4 0   25% 4 1   30%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Instance   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py Conf   60% 25 10 0   25% 8 0   52%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/config.py (no class)   100% 290 0 7   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/loginkey.py IndexedCredentialBone   0% 5 5 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/loginkey.py LoginKey   0% 18 18 0   0% 4 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/loginkey.py (no class)   0% 21 21 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/ratelimit.py TimeWindow   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/ratelimit.py RequestRateLimit   0% 31 31 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/contrib/ratelimit.py (no class)   0% 18 18 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/current.py (no class)   73% 11 3 0   50% 2 1   69%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/data/zip_patterns.py (no class)   100% 2 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/__init__.py (no class)   57% 23 10 0   25% 4 1   52%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/cache.py (no class)   76% 106 25 0   74% 42 7   76%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/config.py DBConfig   0% 6 6 0   0% 4 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/config.py (no class)   100% 8 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/overrides.py (no class)   10% 49 44 0   0% 28 0   6%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/query.py Query   23% 321 248 0   18% 204 17   21%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/query.py (no class)   95% 73 4 0   87% 30 4   92%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/transport.py (no class)   75% 206 52 0   56% 100 20   69%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/types.py SortOrder   0% 9 9 0   0% 6 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/types.py QueryOrder   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/types.py Key   100% 22 0 0   100% 10 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/types.py Entity   67% 3 1 0   50% 2 1   60%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/types.py QueryDefinition   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/types.py (no class)   100% 64 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/db/utils.py (no class)   40% 119 71 0   23% 48 5   35%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/decorators.py (no class)   76% 107 26 0   52% 48 3   68%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransport   0% 29 29 3   0% 18 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransportBrevo   12% 75 66 0   8% 40 1   10%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransportSendInBlue   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransportMailjet   0% 21 21 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransportSendgrid   0% 17 17 0   0% 10 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransportSmtp   23% 26 20 0   0% 4 0   20%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py EmailTransportAppengine   0% 11 11 0   0% 8 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/email.py (no class)   62% 200 76 6   29% 58 13   55%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py HTTPException   83% 6 1 0   100% 0 0   83%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py BadRequest   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py Redirect   100% 4 0 0   100% 2 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py Unauthorized   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py PaymentRequired   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py Forbidden   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py NotFound   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py MethodNotAllowed   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py NotAcceptable   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py RequestTimeout   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py Gone   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py PreconditionFailed   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py RequestTooLarge   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py Locked   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py TooManyRequests   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py UnprocessableEntity   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py Censored   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py InternalServerError   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py NotImplemented   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py BadGateway   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py ServiceUnavailable   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/errors.py (no class)   100% 43 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py AddMissing   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py LanguageWrapper   73% 15 4 0   38% 8 1   61%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py translate   62% 61 23 0   43% 44 11   54%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py TranslationExtension   0% 40 40 0   0% 16 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py TranslationSource   100% 0 0 1   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py StaticModuleSource   20% 10 8 0   0% 6 0   12%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py DatastoreSource   60% 15 6 0   75% 8 2   65%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/i18n.py (no class)   56% 153 68 2   10% 40 0   46%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/languages/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/languages/de.py (no class)   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/languages/en.py (no class)   100% 1 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/logging.py ViURDefaultLogger   90% 10 1 0   100% 0 0   90%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/logging.py ViURLocalFormatter   0% 19 19 0   0% 6 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/logging.py (no class)   89% 38 4 0   88% 8 1   89%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/module.py Method   43% 130 74 0   26% 86 14   36%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/module.py Module   33% 51 34 0   20% 40 4   27%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/module.py (no class)   100% 32 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/email.py EmailSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/email.py Email   0% 8 8 0   0% 4 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/email.py (no class)   0% 28 28 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/file.py DownloadUrlBone   0% 4 4 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/file.py FileLeafSkel   0% 24 24 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/file.py FileNodeSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/file.py File   23% 393 303 0   19% 208 23   21%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/file.py (no class)   43% 371 212 0   10% 88 3   37%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/formmailer.py MailSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/formmailer.py Formmailer   0% 23 23 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/formmailer.py (no class)   0% 20 20 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/history.py HistorySkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/history.py BigQueryHistory   0% 22 22 0   0% 4 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/history.py HistoryAdapter   0% 26 26 0   0% 18 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/history.py History   0% 89 89 0   0% 46 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/history.py (no class)   0% 67 67 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/moduleconf.py ModuleConfScriptSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/moduleconf.py ModuleConfSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/moduleconf.py ModuleConf   44% 43 24 0   40% 20 2   43%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/moduleconf.py (no class)   100% 35 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/page.py PageSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/page.py Page   0% 1 1 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/page.py (no class)   0% 12 12 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/script.py BaseScriptAbstractSkel   0% 10 10 0   0% 8 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/script.py ScriptNodeSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/script.py ScriptLeafSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/script.py Script   0% 68 68 0   0% 36 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/script.py (no class)   0% 38 38 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/site.py Site   0% 7 7 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/site.py (no class)   0% 7 7 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/translation.py Creator   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/translation.py TranslationSkel   38% 8 5 0   33% 6 0   36%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/translation.py Translation   0% 28 28 0   0% 10 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/translation.py (no class)   100% 51 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py Status   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserSkel   0% 32 32 0   0% 26 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserAuthentication   0% 5 5 3   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserPrimaryAuthentication   0% 1 1 1   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserPassword   0% 92 92 0   0% 44 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserPassword.LoginSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserPassword.LostPasswordStep1Skel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserPassword.LostPasswordStep2Skel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserPassword.LostPasswordStep3Skel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py GoogleAccount   0% 41 41 0   0% 24 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py UserSecondFactorAuthentication   0% 4 4 2   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py TimeBasedOTP   0% 60 60 0   0% 32 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py TimeBasedOTP.OtpConfig   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py TimeBasedOTP.OtpSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py AuthenticatorOTP   0% 44 44 0   0% 20 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py User   14% 222 192 0   8% 102 0   12%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py User.SelectAuthenticationProviderSkel.SelectAuthenticationProviderSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py User.SelectSecondFactorProviderSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/modules/user.py (no class)   92% 261 22 9   17% 6 1   90%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/pagination.py Pagination   0% 44 44 0   0% 20 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/pagination.py (no class)   0% 11 11 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/__init__.py (no class)   33% 18 12 0   17% 6 1   29%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/instanced_module.py InstancedModule   0% 7 7 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/instanced_module.py (no class)   0% 6 6 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/list.py List   0% 159 159 0   0% 92 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/list.py (no class)   100% 61 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/singleton.py Singleton   0% 73 73 0   0% 42 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/singleton.py (no class)   100% 35 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/skelmodule.py SkelModule   0% 57 57 0   0% 34 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/skelmodule.py (no class)   87% 46 6 0   0% 2 0   83%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/tree.py TreeSkel   0% 3 3 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/tree.py Tree   0% 369 369 0   0% 216 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/prototypes/tree.py (no class)   100% 108 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/ratelimit.py RateLimit   15% 53 45 0   0% 14 0   12%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/ratelimit.py (no class)   94% 16 1 0   100% 0 0   94%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/__init__.py (no class)   100% 5 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/abstract.py AbstractRenderer   0% 2 2 5   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/abstract.py (no class)   100% 16 0 4   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/default.py Render   0% 155 155 0   0% 106 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/default.py (no class)   100% 45 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/__init__.py (no class)   0% 7 7 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/date.py (no class)   0% 16 16 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/debug.py (no class)   0% 20 20 0   0% 8 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/regex.py (no class)   0% 13 13 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/session.py (no class)   0% 17 17 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/strings.py (no class)   0% 11 11 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/tests.py (no class)   0% 9 9 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/env/viur.py (no class)   0% 344 344 0   0% 150 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/html/utils.py (no class)   39% 33 20 0   0% 6 0   33%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/json/__init__.py (no class)   44% 18 10 0   0% 6 0   33%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/json/default.py CustomJsonEncoder   67% 15 5 0   64% 14 3   66%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/json/default.py DefaultRender   0% 42 42 0   0% 20 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/json/default.py (no class)   100% 34 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/vi/__init__.py default   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/render/vi/__init__.py (no class)   25% 143 107 0   0% 56 0   18%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/request.py RequestValidator   0% 1 1 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/request.py FetchMetaDataValidator   0% 8 8 0   0% 4 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/request.py Router   0% 399 399 0   0% 254 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/request.py (no class)   92% 49 4 2   100% 0 0   92%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/secret.py (no class)   0% 8 8 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/securityheaders.py (no class)   66% 128 43 0   58% 78 7   63%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/securitykey.py (no class)   24% 66 50 0   0% 30 0   17%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/session.py Session   3% 77 75 0   0% 22 0   2%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/session.py DeleteSessionsIter   0% 2 2 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/session.py (no class)   71% 63 18 0   0% 6 0   65%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/__init__.py (no class)   78% 23 5 0   50% 2 1   76%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/adapter.py DatabaseAdapter   25% 4 3 0   100% 0 0   25%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/adapter.py ViurTagsSearchAdapter   50% 32 16 0   40% 20 2   46%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/adapter.py (no class)   100% 22 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/base.py BaseSkeleton   3% 66 64 0   0% 50 0   2%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/base.py (no class)   96% 28 1 0   50% 2 1   93%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/instance.py SkeletonInstance   46% 153 82 0   41% 92 14   44%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/instance.py (no class)   97% 39 1 1   50% 2 1   95%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/meta.py MetaBaseSkel   86% 22 3 0   78% 18 4   82%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/meta.py MetaSkel   41% 27 16 0   40% 20 4   40%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/meta.py (no class)   100% 24 0 1   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/relskel.py RelSkel   0% 12 12 0   0% 8 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/relskel.py RefSkel   0% 16 16 0   0% 6 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/relskel.py (no class)   94% 18 1 0   50% 2 1   90%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/skeleton.py SeoKeyBone   80% 20 4 0   60% 10 4   73%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/skeleton.py Skeleton   33% 331 221 0   24% 216 19   29%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/skeleton.py (no class)   97% 69 2 0   50% 2 1   96%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/tasks.py SkelIterTask   0% 28 28 0   0% 10 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/tasks.py SkeletonMaintenanceTask   0% 9 9 0   0% 4 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/tasks.py SkeletonMaintenanceTask.dataSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/tasks.py SkeletonMaintenanceTask.dataSkel.FilterRowUsingSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/tasks.py (no class)   88% 72 9 0   67% 18 6   83%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/utils.py SkelList   0% 7 7 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/utils.py (no class)   28% 53 38 0   7% 28 2   21%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py CustomEnvironmentHandler   100% 0 0 2   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py PermanentTaskFailure   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py CallableTaskBase   0% 3 3 0   100% 0 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py TaskHandler   0% 128 128 0   0% 68 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py TaskHandler.list.TaskSkel   100% 0 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py MetaQueryIter   100% 3 0 0   100% 0 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py QueryIter   0% 51 51 0   0% 12 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py DeleteEntitiesIter   0% 4 4 0   0% 2 0   0%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/tasks.py (no class)   65% 240 83 4   28% 58 12   58%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/utils/__init__.py (no class)   44% 110 62 0   31% 48 3   40%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/utils/json.py ViURJsonEncoder   79% 24 5 0   77% 22 3   78%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/utils/json.py (no class)   88% 34 4 0   88% 16 2   88%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/utils/parse.py (no class)   100% 10 0 0   100% 4 0   100%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/utils/string.py (no class)   90% 29 3 0   67% 6 2   86%
/home/runner/work/viur-core/viur-core/viur/src/viur/core/version.py (no class)   100% 2 0 0   100% 0 0   100%
Total     42% 13424 7762 56   24% 5744 425   37%

No items found using the specified filter.