Support None values

Open
#63 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Domain
testing

Research direction

Start by reading the Bool, Collection, DefaultInfo, DepsetFile, Dict, File, Int, Label, Runfiles, Str, Struct, and Target subject implementations, noting any existing None handling. Begin with basic assertions for a None actual value and None passed to equals() and not_equals(); done means the supported subjects handle these cases consistently.

Written by the indexing model from the issue text.

Description

enhancement

Support for None is very spotty. I think IntSubject supports it, maybe string, but not all of them. None doesn't happen much in rule code per-se, more so in utility functions. It's common enough that not having this makes using rules_testing a bit of a pain.

So implement allowing a None as the actual value and having None passed to equals() and not_equals(). Basic support should be pretty easy (i.e. just asserting None on a None value). Handling a None actual value for all the other assertions might be more involved -- almost all of them assume they are working with a non-None value. We can start with basic and go from there, though.

Subjects to update:

  • Bool
  • Collection
  • DefaultInfo
  • DepsetFile
  • Dict
  • File
  • Int
  • Label
  • Runfiles
  • Str
  • Struct
  • Target
Dominant language
Starlark
Stars
29
Forks
11
Avg merge
15h 15m
Merged PRs (30d)
3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bazelbuild/rules_testing

All issues in bazelbuild/rules_testing

Similar issues

More Testing & QA issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.