|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import inspect |
|
import os |
|
import sys |
|
import unittest |
|
|
|
|
|
git_repo_path = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) |
|
sys.path.append(os.path.join(git_repo_path, "utils")) |
|
|
|
from check_docstrings import get_default_description, replace_default_in_arg_description |
|
|
|
|
|
class CheckDostringsTested(unittest.TestCase): |
|
def test_replace_default_in_arg_description(self): |
|
|
|
desc_with_default = "`float`, *optional*, defaults to 2.0" |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default, 2.0), "`float`, *optional*, defaults to 2.0" |
|
) |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default, 1.0), "`float`, *optional*, defaults to 1.0" |
|
) |
|
self.assertEqual(replace_default_in_arg_description(desc_with_default, inspect._empty), "`float`") |
|
|
|
|
|
desc_with_default_typo = "`float`, `optional`, defaults to 2.0" |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default_typo, 2.0), "`float`, *optional*, defaults to 2.0" |
|
) |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default_typo, 1.0), "`float`, *optional*, defaults to 1.0" |
|
) |
|
|
|
|
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default, None), "`float`, *optional*, defaults to 2.0" |
|
) |
|
|
|
desc_with_default = "`float`, *optional*, defaults to None" |
|
self.assertEqual(replace_default_in_arg_description(desc_with_default, None), "`float`, *optional*") |
|
desc_with_default = "`float`, *optional*, defaults to `None`" |
|
self.assertEqual(replace_default_in_arg_description(desc_with_default, None), "`float`, *optional*") |
|
|
|
|
|
desc_with_default = "`float`, *optional*, defaults to 1/255" |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default, 1 / 255), "`float`, *optional*, defaults to `1/255`" |
|
) |
|
desc_with_default = "`float`, *optional*, defaults to `1/255`" |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_default, 1 / 255), "`float`, *optional*, defaults to `1/255`" |
|
) |
|
|
|
desc_with_optional = "`float`, *optional*" |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_optional, 2.0), "`float`, *optional*, defaults to 2.0" |
|
) |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_optional, 1.0), "`float`, *optional*, defaults to 1.0" |
|
) |
|
self.assertEqual(replace_default_in_arg_description(desc_with_optional, None), "`float`, *optional*") |
|
self.assertEqual(replace_default_in_arg_description(desc_with_optional, inspect._empty), "`float`") |
|
|
|
desc_with_no_optional = "`float`" |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_no_optional, 2.0), "`float`, *optional*, defaults to 2.0" |
|
) |
|
self.assertEqual( |
|
replace_default_in_arg_description(desc_with_no_optional, 1.0), "`float`, *optional*, defaults to 1.0" |
|
) |
|
self.assertEqual(replace_default_in_arg_description(desc_with_no_optional, None), "`float`, *optional*") |
|
self.assertEqual(replace_default_in_arg_description(desc_with_no_optional, inspect._empty), "`float`") |
|
|
|
def test_get_default_description(self): |
|
|
|
def _fake_function(a, b: int, c=1, d: float = 2.0, e: str = "blob"): |
|
pass |
|
|
|
params = inspect.signature(_fake_function).parameters |
|
assert get_default_description(params["a"]) == "`<fill_type>`" |
|
assert get_default_description(params["b"]) == "`int`" |
|
assert get_default_description(params["c"]) == "`<fill_type>`, *optional*, defaults to 1" |
|
assert get_default_description(params["d"]) == "`float`, *optional*, defaults to 2.0" |
|
assert get_default_description(params["e"]) == '`str`, *optional*, defaults to `"blob"`' |
|
|