On Fri, Mar 13, 2020 at 3:35 PM Amar Takhar <a...@rtems.org> wrote: > > This converts three files: > > error.py: > - Check for exceptions and error messages > > path.py: > - Test params and setting module variables > > macros.py: > - Test class with setup and shared module access > > This should cover the bulk of what is required to convert the rest to pytest. > > Also removes the old test code from the modules themselves. > --- > rtemstoolkit/conftest.py | 13 ++++++++ > rtemstoolkit/error.py | 10 ------ > rtemstoolkit/macros.py | 24 -------------- > rtemstoolkit/path.py | 17 ---------- > rtemstoolkit/tests/__init__.py | 0 > rtemstoolkit/tests/test_error.py | 11 +++++++ > rtemstoolkit/tests/test_macros.py | 41 +++++++++++++++++++++++ > rtemstoolkit/tests/test_path.py | 54 +++++++++++++++++++++++++++++++ > 8 files changed, 119 insertions(+), 51 deletions(-) > create mode 100644 rtemstoolkit/conftest.py > create mode 100644 rtemstoolkit/tests/__init__.py > create mode 100644 rtemstoolkit/tests/test_error.py > create mode 100644 rtemstoolkit/tests/test_macros.py > create mode 100644 rtemstoolkit/tests/test_path.py > > diff --git a/rtemstoolkit/conftest.py b/rtemstoolkit/conftest.py > new file mode 100644 > index 0000000..a823a2e > --- /dev/null > +++ b/rtemstoolkit/conftest.py > @@ -0,0 +1,13 @@
License/file header? > +import pytest > +from sys import path > +import os > + > + > +# Always find the parent directory of rtemstoolkit/ no matter where > +# pytest is run. > +def pytest_runtest_setup(item): > + path_toolkit = os.path.dirname(os.path.abspath(__file__)) > + path.append(path_toolkit[0:path_toolkit.rfind('/')]) > + > + > + > diff --git a/rtemstoolkit/error.py b/rtemstoolkit/error.py > index e3a43c1..697b0a6 100644 > --- a/rtemstoolkit/error.py > +++ b/rtemstoolkit/error.py > @@ -55,13 +55,3 @@ class exit(error): > """Raise for to exit.""" > def __init__(self): > pass > - > -if __name__ == '__main__': > - try: > - raise general('a general error') > - except general as gerr: > - print('caught:', gerr) > - try: > - raise internal('an internal error') > - except internal as ierr: > - print('caught:', ierr) > diff --git a/rtemstoolkit/macros.py b/rtemstoolkit/macros.py > index d8012e1..708107f 100644 > --- a/rtemstoolkit/macros.py > +++ b/rtemstoolkit/macros.py > @@ -534,27 +534,3 @@ class macros: > > def unlock_read_map(self): > self.read_map_locked = False > - > -if __name__ == "__main__": > - import copy > - import sys > - print(inspect.getfile(macros)) > - m = macros() > - d = copy.copy(m) > - m['test1'] = 'something' > - if d.has_key('test1'): > - print('error: copy failed.') > - sys.exit(1) > - m.parse("[test]\n" \ > - "test1: none, undefine, ''\n" \ > - "name: none, override, 'pink'\n") > - print('set test:', m.set_read_map('test')) > - if m['name'] != 'pink': > - print('error: override failed. name is %s' % (m['name'])) > - sys.exit(1) > - if m.has_key('test1'): > - print('error: map undefine failed.') > - sys.exit(1) > - print('unset test:', m.unset_read_map('test')) > - print(m) > - print(m.keys()) > diff --git a/rtemstoolkit/path.py b/rtemstoolkit/path.py > index b15164b..7b5f64b 100644 > --- a/rtemstoolkit/path.py > +++ b/rtemstoolkit/path.py > @@ -430,20 +430,3 @@ def get_humanize_size(path, depth = -1): > return "%5.3f%sB" % (size, unit) > size /= 1024.0 > return "%.3f%sB" % (size, 'Y') > - > -if __name__ == '__main__': > - print(host('/a/b/c/d-e-f')) > - print(host('//a/b//c/d-e-f')) > - print(shell('/w/x/y/z')) > - print(basename('/as/sd/df/fg/me.txt')) > - print(dirname('/as/sd/df/fg/me.txt')) > - print(join('/d', 'g', '/tyty/fgfg')) > - windows = True > - print(host('/a/b/c/d-e-f')) > - print(host('//a/b//c/d-e-f')) > - print(shell('/w/x/y/z')) > - print(shell('w:/x/y/z')) > - print(basename('x:/sd/df/fg/me.txt')) > - print(dirname('x:/sd/df/fg/me.txt')) > - print(join('s:/d/', '/g', '/tyty/fgfg')) > - print(join('s:/d/e\\f/g', '/h', '/tyty/zxzx', '\\mm\\nn/p')) > diff --git a/rtemstoolkit/tests/__init__.py b/rtemstoolkit/tests/__init__.py > new file mode 100644 > index 0000000..e69de29 > diff --git a/rtemstoolkit/tests/test_error.py > b/rtemstoolkit/tests/test_error.py > new file mode 100644 > index 0000000..85ceeae > --- /dev/null > +++ b/rtemstoolkit/tests/test_error.py > @@ -0,0 +1,11 @@ > +import pytest > +from rtemstoolkit.error import general, internal > + > +def test_general(): > + with pytest.raises(general, match=r"^error: test_general$"): > + raise general("test_general") > + > + > +def test_insernal(): > + with pytest.raises(internal, match=r"^internal error: > test_internal$"): > + raise internal("test_internal") > diff --git a/rtemstoolkit/tests/test_macros.py > b/rtemstoolkit/tests/test_macros.py > new file mode 100644 > index 0000000..aa9b80a > --- /dev/null > +++ b/rtemstoolkit/tests/test_macros.py > @@ -0,0 +1,41 @@ > +import pytest > + > +from rtemstoolkit.macros import macros > + > + pydoc? > +class TestClass: > + @classmethod > + def setup_class(cls): > + import copy > + import sys > + cls.m = macros() > + cls.d = copy.copy(cls.m) > + > + > + def test_copy_failure(self): > + self.m['test1'] = 'something' > + assert "test1" not in self.d > + > + > + def test_set_tests(self): > + assert self.m.parse("[test]\n" \ > + "test1: none, undefine, ''\n" \ > + "name: none, override, 'pink'\n") is None > + > + assert self.m.set_read_map("test") > + > + > + def test_check_override(self): > + if self.m["name"] != "pink": > + raise Exception("error: override failed. name is %s" > % self.m["name"]) > + > + > + def test_undefine(self): > + assert "test1" not in self.m > + > + > + def test_unset(self): > + assert "name" in self.m > + assert self.m.unset_read_map("test") > + assert "name" not in self.m > + > diff --git a/rtemstoolkit/tests/test_path.py b/rtemstoolkit/tests/test_path.py > new file mode 100644 > index 0000000..2ce9acb > --- /dev/null > +++ b/rtemstoolkit/tests/test_path.py > @@ -0,0 +1,54 @@ > +import pytest > + > +from rtemstoolkit import path > + > + > +rtems_windows = pytest.mark.parametrize("windows", [False, True], > ids=["Windows=False", "Windows=True"]) line length > + > + > +@rtems_windows > +def test_host(windows): > + path.windows = windows > + > + if windows: > + path_str = "a:\\b\\c\\d-e-f" > + else: > + path_str = "/a/b/c/d-e-f" > + > + assert path.host('//a/b/c/d-e-f') == path_str > + > + > +@rtems_windows > +def test_shell(windows): > + path.windows = windows > + assert path.shell('/w/x/y/z') == "/w/x/y/z" > + Add another blank line > +@rtems_windows > +def test_basename(windows): > + path.windows = windows > + assert path.basename('/as/sd/df/fg/me.txt') == "me.txt" > + > + if windows: > + assert path.basename('x:/sd/df/fg/me.txt') == "me.txt" > + > + > +@rtems_windows > +def test_dirname(windows): > + path.windows = windows > + assert path.dirname('/as/sd/df/fg/me.txt') == "/as/sd/df/fg" > + > + if windows: > + assert path.dirname('x:/sd/df/fg/me.txt') == "/x/sd/df/fg" > + > + > +@rtems_windows > +def test_join(windows): > + path.windows = windows > + assert path.join('/d', 'g', '/tyty/fgfg') == "/d/g/tyty/fgfg" > + > + if windows: > + assert path.join('s:/d/e\\f/g', '/h', '/tyty/zxzx', > '\\mm\\nn/p') == "/s/d/e/f/g/h/tyty/zxzx/mm/nn/p" > + assert path.join('s:/d/', '/g', '/tyty/fgfg') == > "/s/d/g/tyty/fgfg" > + > + > + > -- > 2.25.0 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel