Source: taskw
Version: 2.0.0-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20240319 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:305: python3.12 setup.py config 
> running config
> I: pybuild base:305: python3.11 setup.py config 
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:305: /usr/bin/python3.12 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> copying taskw/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> copying taskw/taskrc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> copying taskw/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> copying taskw/exceptions.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> copying taskw/task.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> copying taskw/warrior.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/uuid.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/string.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/choice.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/base.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/duration.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/annotationarray.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/numeric.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/commaseparateduuid.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/date.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> copying taskw/fields/array.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/fields
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_warrior.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_utils.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_taskrc.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_fields.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_datas.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_recursive.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> copying taskw/test/test_task.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test
> running egg_info
> creating taskw.egg-info
> writing taskw.egg-info/PKG-INFO
> writing dependency_links to taskw.egg-info/dependency_links.txt
> writing requirements to taskw.egg-info/requires.txt
> writing top-level names to taskw.egg-info/top_level.txt
> writing manifest file 'taskw.egg-info/SOURCES.txt'
> reading manifest file 'taskw.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no files found matching '.tox_tests.sh'
> adding license file 'LICENSE.txt'
> writing manifest file 'taskw.egg-info/SOURCES.txt'
> /usr/lib/python3/dist-packages/setuptools/command/build_py.py:204: _Warning: 
> Package 'taskw.test.data' is absent from the `packages` configuration.
> !!
> 
>         
> ********************************************************************************
>         ############################
>         # Package would be ignored #
>         ############################
>         Python recognizes 'taskw.test.data' as an importable package[^1],
>         but it is absent from setuptools' `packages` configuration.
> 
>         This leads to an ambiguous overall configuration. If you want to 
> distribute this
>         package, please make sure that 'taskw.test.data' is explicitly added
>         to the `packages` configuration field.
> 
>         Alternatively, you can also rely on setuptools' discovery methods
>         (for example by using `find_namespace_packages(...)`/`find_namespace:`
>         instead of `find_packages(...)`/`find:`).
> 
>         You can read more about "package discovery" on setuptools 
> documentation page:
> 
>         - 
> https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
> 
>         If you don't want 'taskw.test.data' to be distributed and are
>         already explicitly excluding 'taskw.test.data' via
>         `find_namespace_packages(...)/find_namespace` or 
> `find_packages(...)/find`,
>         you can try to use `exclude_package_data`, or 
> `include-package-data=False` in
>         combination with a more fine grained `package-data` configuration.
> 
>         You can read more about "package data files" on setuptools 
> documentation page:
> 
>         - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
> 
> 
>         [^1]: For Python, any directory (with suitable naming) can be 
> imported,
>               even if it does not contain any `.py` files.
>               On the other hand, currently there is no concept of package data
>               directory, all directories are treated like packages.
>         
> ********************************************************************************
> 
> !!
>   check.warn(importable)
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test/data
> copying taskw/test/data/default.taskrc -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test/data
> copying taskw/test/data/empty.taskrc -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test/data
> copying taskw/test/data/included.taskrc -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/taskw/test/data
> I: pybuild base:305: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> copying taskw/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> copying taskw/taskrc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> copying taskw/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> copying taskw/exceptions.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> copying taskw/task.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> copying taskw/warrior.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/uuid.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/string.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/choice.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/base.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/duration.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/annotationarray.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/numeric.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/commaseparateduuid.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/date.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> copying taskw/fields/array.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/fields
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_warrior.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_utils.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_taskrc.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_fields.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_datas.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_recursive.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> copying taskw/test/test_task.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test
> running egg_info
> writing taskw.egg-info/PKG-INFO
> writing dependency_links to taskw.egg-info/dependency_links.txt
> writing requirements to taskw.egg-info/requires.txt
> writing top-level names to taskw.egg-info/top_level.txt
> reading manifest file 'taskw.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no files found matching '.tox_tests.sh'
> adding license file 'LICENSE.txt'
> writing manifest file 'taskw.egg-info/SOURCES.txt'
> /usr/lib/python3/dist-packages/setuptools/command/build_py.py:204: _Warning: 
> Package 'taskw.test.data' is absent from the `packages` configuration.
> !!
> 
>         
> ********************************************************************************
>         ############################
>         # Package would be ignored #
>         ############################
>         Python recognizes 'taskw.test.data' as an importable package[^1],
>         but it is absent from setuptools' `packages` configuration.
> 
>         This leads to an ambiguous overall configuration. If you want to 
> distribute this
>         package, please make sure that 'taskw.test.data' is explicitly added
>         to the `packages` configuration field.
> 
>         Alternatively, you can also rely on setuptools' discovery methods
>         (for example by using `find_namespace_packages(...)`/`find_namespace:`
>         instead of `find_packages(...)`/`find:`).
> 
>         You can read more about "package discovery" on setuptools 
> documentation page:
> 
>         - 
> https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
> 
>         If you don't want 'taskw.test.data' to be distributed and are
>         already explicitly excluding 'taskw.test.data' via
>         `find_namespace_packages(...)/find_namespace` or 
> `find_packages(...)/find`,
>         you can try to use `exclude_package_data`, or 
> `include-package-data=False` in
>         combination with a more fine grained `package-data` configuration.
> 
>         You can read more about "package data files" on setuptools 
> documentation page:
> 
>         - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
> 
> 
>         [^1]: For Python, any directory (with suitable naming) can be 
> imported,
>               even if it does not contain any `.py` files.
>               On the other hand, currently there is no concept of package data
>               directory, all directories are treated like packages.
>         
> ********************************************************************************
> 
> !!
>   check.warn(importable)
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test/data
> copying taskw/test/data/default.taskrc -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test/data
> copying taskw/test/data/empty.taskrc -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test/data
> copying taskw/test/data/included.taskrc -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/taskw/test/data
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:305: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; 
> python3.12 -m pytest 
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: setup.cfg
> collected 151 items
> 
> taskw/test/test_datas.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 
> 31%]
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF                                       [ 
> 53%]
> taskw/test/test_fields.py ................................               [ 
> 74%]
> taskw/test/test_recursive.py FF                                          [ 
> 76%]
> taskw/test/test_task.py ..........                                       [ 
> 82%]
> taskw/test/test_taskrc.py ....                                           [ 
> 85%]
> taskw/test/test_utils.py ...................                             [ 
> 98%]
> taskw/test/test_warrior.py ...                                           
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _____________________ TestDBDirect.test_has_two_categories 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f710>
> 
>     def test_has_two_categories(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:65: AttributeError
> __________________________ TestDBDirect.test_empty_db 
> __________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f2f0>
> 
>     def test_empty_db(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:71: AttributeError
> ____________________________ TestDBDirect.test_add 
> _____________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f380>
> 
>     def test_add(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:75: AttributeError
> ___________________ TestDBDirect.test_unchanging_load_tasks 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f4a0>
> 
>     def test_unchanging_load_tasks(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:80: AttributeError
> _______________ TestDBDirect.test_completion_raising_unspecified 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e6f0>
> 
>     def test_completion_raising_unspecified(self):
>         with pytest.raises(KeyError):
> >           self.tw.task_done()
> E           AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:87: AttributeError
> _____________ TestDBDirect.test_completing_task_by_id_unspecified 
> ______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5ecf0>
> 
>     def test_completing_task_by_id_unspecified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:90: AttributeError
> ______________ TestDBDirect.test_completing_task_by_id_specified 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5ee40>
> 
>     def test_completing_task_by_id_specified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:100: AttributeError
> ______________ TestDBDirect.test_completing_task_by_id_retrieved 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5df10>
> 
>     def test_completing_task_by_id_retrieved(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:109: AttributeError
> __________________ TestDBDirect.test_completing_task_by_uuid 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f2c0>
> 
>     def test_completing_task_by_uuid(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:118: AttributeError
> _____________________ TestDBDirect.test_get_task_mismatch 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e360>
> 
>     def test_get_task_mismatch(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:128: AttributeError
> _______________________ TestDBDirect.test_updating_task 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e8a0>
> 
>     def test_updating_task(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:135: AttributeError
> _________________________ TestDBDirect.test_update_exc 
> _________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5ea50>
> 
>     def test_update_exc(self):
>         task = dict(description="lol")
>         with pytest.raises(KeyError):
> >           self.tw.task_update(task)
> E           AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:173: AttributeError
> ______________________ TestDBDirect.test_add_complicated 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5ed20>
> 
>     def test_add_complicated(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project"
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:176: AttributeError
> _______________________ TestDBDirect.test_add_timestamp 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e270>
> 
>     def test_add_timestamp(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry="20110101T000000Z",
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:185: AttributeError
> ________________________ TestDBDirect.test_add_datetime 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e5a0>
> 
>     def test_add_datetime(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry=datetime.datetime(2011, 1, 1, tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:196: AttributeError
> ____________________ TestDBDirect.test_add_with_uda_string 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e2d0>
> 
>     def test_add_with_uda_string(self):
> >       self.tw.task_add(
>             "foobar",
>             somestring="this is a uda",
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:209: AttributeError
> _____________________ TestDBDirect.test_add_with_uda_date 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5ddf0>
> 
>     def test_add_with_uda_date(self):
> >       self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1, 
> tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:220: AttributeError
> _____________________ TestDBDirect.test_remove_uda_string 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5da00>
> 
>     def test_remove_uda_string(self):
>         # Check that a string UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somestring='this is a uda',
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:233: AttributeError
> ______________________ TestDBDirect.test_remove_uda_date 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e180>
> 
>     def test_remove_uda_date(self):
>         # Check that a date UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1),
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:245: AttributeError
> _____________________ TestDBDirect.test_remove_uda_numeric 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e9c0>
> 
>     def test_remove_uda_numeric(self):
>         # Check that a numeric UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somenumber=15,
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:257: AttributeError
> _________________ TestDBDirect.test_completing_completed_task 
> __________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f170>
> 
>     def test_completing_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:267: AttributeError
> __________________ TestDBDirect.test_updating_completed_task 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5f350>
> 
>     def test_updating_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:273: AttributeError
> _____________________ TestDBDirect.test_get_task_completed 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5df70>
> 
>     def test_get_task_completed(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:280: AttributeError
> _________________ TestDBDirect.test_load_task_pending_command 
> __________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5e120>
> 
>     def test_load_task_pending_command(self):
> >       tasks = self.tw.load_tasks(command='pending')
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:288: AttributeError
> ________________ TestDBDirect.test_load_task_completed_command 
> _________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5d610>
> 
>     def test_load_task_completed_command(self):
> >       tasks = self.tw.load_tasks(command='completed')
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:293: AttributeError
> _______________ TestDBDirect.test_load_task_with_unknown_command 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5dc40>
> 
>     def test_load_task_with_unknown_command(self):
>         with pytest.raises(ValueError):
> >           self.tw.load_tasks(command='foobar')
> E           AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:299: AttributeError
> ___________________ TestDBDirect.test_updating_deleted_task 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5d7c0>
> 
>     def test_updating_deleted_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:302: AttributeError
> ___________________________ TestDBDirect.test_delete 
> ___________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5d880>
> 
>     def test_delete(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:309: AttributeError
> ___________________ TestDBDirect.test_delete_already_deleted 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5d700>
> 
>     def test_delete_already_deleted(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:315: AttributeError
> __________________ TestDBDirect.test_load_tasks_with_one_each 
> __________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aedc5d580>
> 
>     def test_load_tasks_with_one_each(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:321: AttributeError
> ______________________ TestDBDirect.test_delete_completed 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7f7aee817380>
> 
>     def test_delete_completed(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:336: AttributeError
> ____________________ TestDBShellout.test_has_two_categories 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c140>
> 
>     def test_has_two_categories(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:65: AttributeError
> _________________________ TestDBShellout.test_empty_db 
> _________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aeddd38c0>
> 
>     def test_empty_db(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:71: AttributeError
> ___________________________ TestDBShellout.test_add 
> ____________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7e5820>
> 
>     def test_add(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:75: AttributeError
> __________________ TestDBShellout.test_unchanging_load_tasks 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7ba2a0>
> 
>     def test_unchanging_load_tasks(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:80: AttributeError
> ______________ TestDBShellout.test_completion_raising_unspecified 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7baa20>
> 
>     def test_completion_raising_unspecified(self):
>         with pytest.raises(KeyError):
> >           self.tw.task_done()
> E           AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:87: AttributeError
> ____________ TestDBShellout.test_completing_task_by_id_unspecified 
> _____________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7d78f0>
> 
>     def test_completing_task_by_id_unspecified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:90: AttributeError
> _____________ TestDBShellout.test_completing_task_by_id_specified 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7d7920>
> 
>     def test_completing_task_by_id_specified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:100: AttributeError
> _____________ TestDBShellout.test_completing_task_by_id_retrieved 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2aa20>
> 
>     def test_completing_task_by_id_retrieved(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:109: AttributeError
> _________________ TestDBShellout.test_completing_task_by_uuid 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2bfe0>
> 
>     def test_completing_task_by_uuid(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:118: AttributeError
> ____________________ TestDBShellout.test_get_task_mismatch 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2bf50>
> 
>     def test_get_task_mismatch(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:128: AttributeError
> ______________________ TestDBShellout.test_updating_task 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2be00>
> 
>     def test_updating_task(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:135: AttributeError
> ________________________ TestDBShellout.test_update_exc 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2bcb0>
> 
>     def test_update_exc(self):
>         task = dict(description="lol")
>         with pytest.raises(KeyError):
> >           self.tw.task_update(task)
> E           AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:173: AttributeError
> _____________________ TestDBShellout.test_add_complicated 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2b920>
> 
>     def test_add_complicated(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project"
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:176: AttributeError
> ______________________ TestDBShellout.test_add_timestamp 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2b7a0>
> 
>     def test_add_timestamp(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry="20110101T000000Z",
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:185: AttributeError
> _______________________ TestDBShellout.test_add_datetime 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc29c10>
> 
>     def test_add_datetime(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry=datetime.datetime(2011, 1, 1, tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:196: AttributeError
> ___________________ TestDBShellout.test_add_with_uda_string 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2a660>
> 
>     def test_add_with_uda_string(self):
> >       self.tw.task_add(
>             "foobar",
>             somestring="this is a uda",
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:209: AttributeError
> ____________________ TestDBShellout.test_add_with_uda_date 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc78350>
> 
>     def test_add_with_uda_date(self):
> >       self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1, 
> tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:220: AttributeError
> ____________________ TestDBShellout.test_remove_uda_string 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2a750>
> 
>     def test_remove_uda_string(self):
>         # Check that a string UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somestring='this is a uda',
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:233: AttributeError
> _____________________ TestDBShellout.test_remove_uda_date 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2b950>
> 
>     def test_remove_uda_date(self):
>         # Check that a date UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:245: AttributeError
> ____________________ TestDBShellout.test_remove_uda_numeric 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc2bb30>
> 
>     def test_remove_uda_numeric(self):
>         # Check that a numeric UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somenumber=15,
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:257: AttributeError
> ________________ TestDBShellout.test_completing_completed_task 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7d7620>
> 
>     def test_completing_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:267: AttributeError
> _________________ TestDBShellout.test_updating_completed_task 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aee7ba8a0>
> 
>     def test_updating_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:273: AttributeError
> ____________________ TestDBShellout.test_get_task_completed 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aeddd20c0>
> 
>     def test_get_task_completed(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:280: AttributeError
> ________________ TestDBShellout.test_load_task_pending_command 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5f500>
> 
>     def test_load_task_pending_command(self):
> >       tasks = self.tw.load_tasks(command='pending')
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:288: AttributeError
> _______________ TestDBShellout.test_load_task_completed_command 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5d820>
> 
>     def test_load_task_completed_command(self):
> >       tasks = self.tw.load_tasks(command='completed')
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:293: AttributeError
> ______________ TestDBShellout.test_load_task_with_unknown_command 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5caa0>
> 
>     def test_load_task_with_unknown_command(self):
>         with pytest.raises(ValueError):
> >           self.tw.load_tasks(command='foobar')
> E           AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:299: AttributeError
> __________________ TestDBShellout.test_updating_deleted_task 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5db80>
> 
>     def test_updating_deleted_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:302: AttributeError
> __________________________ TestDBShellout.test_delete 
> __________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc78b60>
> 
>     def test_delete(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:309: AttributeError
> __________________ TestDBShellout.test_delete_already_deleted 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc799d0>
> 
>     def test_delete_already_deleted(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:315: AttributeError
> _________________ TestDBShellout.test_load_tasks_with_one_each 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc7a630>
> 
>     def test_load_tasks_with_one_each(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:321: AttributeError
> _____________________ TestDBShellout.test_filtering_simple 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5d3a0>
> 
>     def test_filtering_simple(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:355: AttributeError
> _____________________ TestDBShellout.test_filtering_brace 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5d250>
> 
>     def test_filtering_brace(self):
> >       self.tw.task_add("[foobar1]")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:364: AttributeError
> _____________________ TestDBShellout.test_filtering_quote 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5cdd0>
> 
>     def test_filtering_quote(self):
> >       self.tw.task_add("[foobar1]")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:373: AttributeError
> ______________________ TestDBShellout.test_filtering_plus 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5ce30>
> 
>     def test_filtering_plus(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:382: AttributeError
> _____________________ TestDBShellout.test_filtering_minus 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5cb30>
> 
>     def test_filtering_minus(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:392: AttributeError
> _____________________ TestDBShellout.test_filtering_colon 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5cb00>
> 
>     def test_filtering_colon(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:402: AttributeError
> _____________________ TestDBShellout.test_filtering_qmark 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c9e0>
> 
>     def test_filtering_qmark(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:412: AttributeError
> _______________ TestDBShellout.test_filtering_qmark_not_contains 
> _______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c8c0>
> 
>     def test_filtering_qmark_not_contains(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:421: AttributeError
> ___________________ TestDBShellout.test_filtering_semicolon 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c680>
> 
>     def test_filtering_semicolon(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:430: AttributeError
> _________________ TestDBShellout.test_filtering_question_mark 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c650>
> 
>     def test_filtering_question_mark(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:440: AttributeError
> _____________________ TestDBShellout.test_filtering_slash 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c440>
> 
>     def test_filtering_slash(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:450: AttributeError
> _______________ TestDBShellout.test_filtering_logic_disjunction 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c470>
> 
>     def test_filtering_logic_disjunction(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:460: AttributeError
> _______________ TestDBShellout.test_filtering_logic_conjunction 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5c830>
> 
>     def test_filtering_logic_conjunction(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:474: AttributeError
> _ 
> TestDBShellout.test_filtering_logic_conjunction_junction_whats_your_function _
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5cc50>
> 
>     def test_filtering_logic_conjunction_junction_whats_your_function(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:486: AttributeError
> ___________________ TestDBShellout.test_annotation_escaping 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5d130>
> 
>     def test_annotation_escaping(self):
>         original = {'description': 're-opening the issue'}
>     
> >       self.tw.task_add('foobar')
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:503: AttributeError
> ________________ TestDBShellout.test_remove_uda_string_marshal 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5d4f0>
> 
>     def test_remove_uda_string_marshal(self):
>         # Check that a string UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw_marshal.task_add(
>             "foobar",
>             somestring='this is a uda',
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw_marshal'
> 
> taskw/test/test_datas.py:517: AttributeError
> _________________ TestDBShellout.test_remove_uda_date_marshal 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5d940>
> 
>     def test_remove_uda_date_marshal(self):
>         # Check that a date UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw_marshal.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw_marshal'
> 
> taskw/test/test_datas.py:529: AttributeError
> ________________ TestDBShellout.test_remove_uda_numeric_marshal 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5ffb0>
> 
>     def test_remove_uda_numeric_marshal(self):
>         # Check that a numeric UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw_marshal.task_add(
>             "foobar",
>             somenumber=15,
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw_marshal'
> 
> taskw/test/test_datas.py:541: AttributeError
> _____________ TestDBShellout.test_add_and_retrieve_uda_string_url 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5eab0>
> 
>     def test_add_and_retrieve_uda_string_url(self):
>         arbitrary_url = "http://www.someurl.com/1084/";
>     
> >       self.tw.config_overrides['uda'] = {
>             'someurl': {
>                 'label': 'Some URL',
>                 'type': 'string'
>             }
>         }
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:553: AttributeError
> ________ TestDBShellout.test_add_and_retrieve_uda_string_url_in_parens 
> _________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7f7aedc5e4b0>
> 
>     def test_add_and_retrieve_uda_string_url_in_parens(self):
>         arbitrary_url = "http://www.someurl.com/1084/";
>     
> >       self.tw.config_overrides['uda'] = {
>             'someurl': {
>                 'label': 'Some URL',
>                 'type': 'string'
>             }
>         }
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:573: AttributeError
> ____________________ TestRecursibe.test_set_dep_on_one_uuid 
> ____________________
> 
> self = <taskw.test.test_recursive.TestRecursibe object at 0x7f7aedc8ede0>
> 
>     def test_set_dep_on_one_uuid(self):
> >       task1 = self.tw.task_add('task1')
> E       AttributeError: 'TestRecursibe' object has no attribute 'tw'
> 
> taskw/test/test_recursive.py:54: AttributeError
> ____________________ TestRecursibe.test_set_dep_on_two_uuid 
> ____________________
> 
> self = <taskw.test.test_recursive.TestRecursibe object at 0x7f7aedc8e450>
> 
>     def test_set_dep_on_two_uuid(self):
> >       task1 = self.tw.task_add('task1')
> E       AttributeError: 'TestRecursibe' object has no attribute 'tw'
> 
> taskw/test/test_recursive.py:59: AttributeError
> =========================== short test summary info 
> ============================
> FAILED taskw/test/test_datas.py::TestDBDirect::test_has_two_categories - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_empty_db - 
> AttributeError...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add - AttributeError: 
> 'Te...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_unchanging_load_tasks - 
> A...
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completion_raising_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_id_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_id_specified
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_id_retrieved
> FAILED taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_uuid
> FAILED taskw/test/test_datas.py::TestDBDirect::test_get_task_mismatch - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_updating_task - 
> Attribute...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_update_exc - 
> AttributeErr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_complicated - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_timestamp - 
> Attribute...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_datetime - 
> AttributeE...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_with_uda_string - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_with_uda_date - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_remove_uda_string - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_remove_uda_date - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_remove_uda_numeric - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_completing_completed_task
> FAILED taskw/test/test_datas.py::TestDBDirect::test_updating_completed_task
> FAILED taskw/test/test_datas.py::TestDBDirect::test_get_task_completed - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_load_task_pending_command
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_load_task_completed_command
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_load_task_with_unknown_command
> FAILED taskw/test/test_datas.py::TestDBDirect::test_updating_deleted_task - 
> A...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_delete - AttributeError: 
> ...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_delete_already_deleted - 
> ...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_load_tasks_with_one_each
> FAILED taskw/test/test_datas.py::TestDBDirect::test_delete_completed - 
> Attrib...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_has_two_categories - 
> At...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_empty_db - 
> AttributeErr...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add - AttributeError: 
> '...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_unchanging_load_tasks
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completion_raising_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_id_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_id_specified
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_id_retrieved
> FAILED taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_uuid
> FAILED taskw/test/test_datas.py::TestDBShellout::test_get_task_mismatch - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_updating_task - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_update_exc - 
> AttributeE...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_complicated - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_timestamp - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_datetime - 
> Attribut...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_with_uda_string - 
> A...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_with_uda_date - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_string - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_date - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_numeric - 
> At...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_completed_task
> FAILED taskw/test/test_datas.py::TestDBShellout::test_updating_completed_task
> FAILED taskw/test/test_datas.py::TestDBShellout::test_get_task_completed - 
> At...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_load_task_pending_command
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_load_task_completed_command
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_load_task_with_unknown_command
> FAILED taskw/test/test_datas.py::TestDBShellout::test_updating_deleted_task
> FAILED taskw/test/test_datas.py::TestDBShellout::test_delete - 
> AttributeError...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_delete_already_deleted
> FAILED taskw/test/test_datas.py::TestDBShellout::test_load_tasks_with_one_each
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_simple - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_brace - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_quote - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_plus - 
> Attrib...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_minus - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_colon - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_qmark - 
> Attri...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_qmark_not_contains
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_semicolon - 
> A...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_question_mark
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_slash - 
> Attri...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_logic_disjunction
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_logic_conjunction
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_logic_conjunction_junction_whats_your_function
> FAILED taskw/test/test_datas.py::TestDBShellout::test_annotation_escaping - 
> A...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_remove_uda_string_marshal
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_date_marshal
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_remove_uda_numeric_marshal
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_add_and_retrieve_uda_string_url
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_add_and_retrieve_uda_string_url_in_parens
> FAILED taskw/test/test_recursive.py::TestRecursibe::test_set_dep_on_one_uuid
> FAILED taskw/test/test_recursive.py::TestRecursibe::test_set_dep_on_two_uuid
> ======================== 83 failed, 68 passed in 1.93s 
> =========================
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest 
> I: pybuild base:305: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; 
> python3.11 -m pytest 
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.8, pytest-8.1.1, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: setup.cfg
> collected 151 items
> 
> taskw/test/test_datas.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 
> 31%]
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF                                       [ 
> 53%]
> taskw/test/test_fields.py ................................               [ 
> 74%]
> taskw/test/test_recursive.py FF                                          [ 
> 76%]
> taskw/test/test_task.py ..........                                       [ 
> 82%]
> taskw/test/test_taskrc.py ....                                           [ 
> 85%]
> taskw/test/test_utils.py ...................                             [ 
> 98%]
> taskw/test/test_warrior.py ...                                           
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _____________________ TestDBDirect.test_has_two_categories 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771524510>
> 
>     def test_has_two_categories(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:65: AttributeError
> __________________________ TestDBDirect.test_empty_db 
> __________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771525050>
> 
>     def test_empty_db(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:71: AttributeError
> ____________________________ TestDBDirect.test_add 
> _____________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771524d90>
> 
>     def test_add(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:75: AttributeError
> ___________________ TestDBDirect.test_unchanging_load_tasks 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771525a10>
> 
>     def test_unchanging_load_tasks(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:80: AttributeError
> _______________ TestDBDirect.test_completion_raising_unspecified 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771525c50>
> 
>     def test_completion_raising_unspecified(self):
>         with pytest.raises(KeyError):
> >           self.tw.task_done()
> E           AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:87: AttributeError
> _____________ TestDBDirect.test_completing_task_by_id_unspecified 
> ______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771527290>
> 
>     def test_completing_task_by_id_unspecified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:90: AttributeError
> ______________ TestDBDirect.test_completing_task_by_id_specified 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771526650>
> 
>     def test_completing_task_by_id_specified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:100: AttributeError
> ______________ TestDBDirect.test_completing_task_by_id_retrieved 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771526cd0>
> 
>     def test_completing_task_by_id_retrieved(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:109: AttributeError
> __________________ TestDBDirect.test_completing_task_by_uuid 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771527650>
> 
>     def test_completing_task_by_uuid(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:118: AttributeError
> _____________________ TestDBDirect.test_get_task_mismatch 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771527d90>
> 
>     def test_get_task_mismatch(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:128: AttributeError
> _______________________ TestDBDirect.test_updating_task 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771511e10>
> 
>     def test_updating_task(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:135: AttributeError
> _________________________ TestDBDirect.test_update_exc 
> _________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771512710>
> 
>     def test_update_exc(self):
>         task = dict(description="lol")
>         with pytest.raises(KeyError):
> >           self.tw.task_update(task)
> E           AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:173: AttributeError
> ______________________ TestDBDirect.test_add_complicated 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe7715107d0>
> 
>     def test_add_complicated(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project"
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:176: AttributeError
> _______________________ TestDBDirect.test_add_timestamp 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771510f10>
> 
>     def test_add_timestamp(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry="20110101T000000Z",
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:185: AttributeError
> ________________________ TestDBDirect.test_add_datetime 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771511d10>
> 
>     def test_add_datetime(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry=datetime.datetime(2011, 1, 1, tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:196: AttributeError
> ____________________ TestDBDirect.test_add_with_uda_string 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771512d90>
> 
>     def test_add_with_uda_string(self):
> >       self.tw.task_add(
>             "foobar",
>             somestring="this is a uda",
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:209: AttributeError
> _____________________ TestDBDirect.test_add_with_uda_date 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771512dd0>
> 
>     def test_add_with_uda_date(self):
> >       self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1, 
> tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:220: AttributeError
> _____________________ TestDBDirect.test_remove_uda_string 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe7715264d0>
> 
>     def test_remove_uda_string(self):
>         # Check that a string UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somestring='this is a uda',
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:233: AttributeError
> ______________________ TestDBDirect.test_remove_uda_date 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771512790>
> 
>     def test_remove_uda_date(self):
>         # Check that a date UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1),
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:245: AttributeError
> _____________________ TestDBDirect.test_remove_uda_numeric 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771512550>
> 
>     def test_remove_uda_numeric(self):
>         # Check that a numeric UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somenumber=15,
>         )
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:257: AttributeError
> _________________ TestDBDirect.test_completing_completed_task 
> __________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771512f50>
> 
>     def test_completing_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:267: AttributeError
> __________________ TestDBDirect.test_updating_completed_task 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771513910>
> 
>     def test_updating_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:273: AttributeError
> _____________________ TestDBDirect.test_get_task_completed 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771513e90>
> 
>     def test_get_task_completed(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:280: AttributeError
> _________________ TestDBDirect.test_load_task_pending_command 
> __________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe771510090>
> 
>     def test_load_task_pending_command(self):
> >       tasks = self.tw.load_tasks(command='pending')
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:288: AttributeError
> ________________ TestDBDirect.test_load_task_completed_command 
> _________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe77193e3d0>
> 
>     def test_load_task_completed_command(self):
> >       tasks = self.tw.load_tasks(command='completed')
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:293: AttributeError
> _______________ TestDBDirect.test_load_task_with_unknown_command 
> _______________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe77193c710>
> 
>     def test_load_task_with_unknown_command(self):
>         with pytest.raises(ValueError):
> >           self.tw.load_tasks(command='foobar')
> E           AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:299: AttributeError
> ___________________ TestDBDirect.test_updating_deleted_task 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe77193cdd0>
> 
>     def test_updating_deleted_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:302: AttributeError
> ___________________________ TestDBDirect.test_delete 
> ___________________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe77193d490>
> 
>     def test_delete(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:309: AttributeError
> ___________________ TestDBDirect.test_delete_already_deleted 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe77193d990>
> 
>     def test_delete_already_deleted(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:315: AttributeError
> __________________ TestDBDirect.test_load_tasks_with_one_each 
> __________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe77193e090>
> 
>     def test_load_tasks_with_one_each(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:321: AttributeError
> ______________________ TestDBDirect.test_delete_completed 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBDirect object at 0x7fe7723f2090>
> 
>     def test_delete_completed(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBDirect' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:336: AttributeError
> ____________________ TestDBShellout.test_has_two_categories 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771502650>
> 
>     def test_has_two_categories(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:65: AttributeError
> _________________________ TestDBShellout.test_empty_db 
> _________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f3050>
> 
>     def test_empty_db(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:71: AttributeError
> ___________________________ TestDBShellout.test_add 
> ____________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f2e90>
> 
>     def test_add(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:75: AttributeError
> __________________ TestDBShellout.test_unchanging_load_tasks 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f3810>
> 
>     def test_unchanging_load_tasks(self):
> >       tasks = self.tw.load_tasks()
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:80: AttributeError
> ______________ TestDBShellout.test_completion_raising_unspecified 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f3f90>
> 
>     def test_completion_raising_unspecified(self):
>         with pytest.raises(KeyError):
> >           self.tw.task_done()
> E           AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:87: AttributeError
> ____________ TestDBShellout.test_completing_task_by_id_unspecified 
> _____________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f0150>
> 
>     def test_completing_task_by_id_unspecified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:90: AttributeError
> _____________ TestDBShellout.test_completing_task_by_id_specified 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f0c10>
> 
>     def test_completing_task_by_id_specified(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:100: AttributeError
> _____________ TestDBShellout.test_completing_task_by_id_retrieved 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f1690>
> 
>     def test_completing_task_by_id_retrieved(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:109: AttributeError
> _________________ TestDBShellout.test_completing_task_by_uuid 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f11d0>
> 
>     def test_completing_task_by_uuid(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:118: AttributeError
> ____________________ TestDBShellout.test_get_task_mismatch 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f1ad0>
> 
>     def test_get_task_mismatch(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:128: AttributeError
> ______________________ TestDBShellout.test_updating_task 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f2150>
> 
>     def test_updating_task(self):
> >       self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:135: AttributeError
> ________________________ TestDBShellout.test_update_exc 
> ________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f2850>
> 
>     def test_update_exc(self):
>         task = dict(description="lol")
>         with pytest.raises(KeyError):
> >           self.tw.task_update(task)
> E           AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:173: AttributeError
> _____________________ TestDBShellout.test_add_complicated 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e9410>
> 
>     def test_add_complicated(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project"
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:176: AttributeError
> ______________________ TestDBShellout.test_add_timestamp 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e8310>
> 
>     def test_add_timestamp(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry="20110101T000000Z",
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:185: AttributeError
> _______________________ TestDBShellout.test_add_datetime 
> _______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e8ad0>
> 
>     def test_add_datetime(self):
> >       self.tw.task_add(
>             "foobar",
>             uuid="1234-1234",
>             project="some_project",
>             entry=datetime.datetime(2011, 1, 1, tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:196: AttributeError
> ___________________ TestDBShellout.test_add_with_uda_string 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e8f50>
> 
>     def test_add_with_uda_string(self):
> >       self.tw.task_add(
>             "foobar",
>             somestring="this is a uda",
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:209: AttributeError
> ____________________ TestDBShellout.test_add_with_uda_date 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714eb190>
> 
>     def test_add_with_uda_date(self):
> >       self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1, 
> tzinfo=dateutil.tz.tzutc()),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:220: AttributeError
> ____________________ TestDBShellout.test_remove_uda_string 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f2810>
> 
>     def test_remove_uda_string(self):
>         # Check that a string UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somestring='this is a uda',
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:233: AttributeError
> _____________________ TestDBShellout.test_remove_uda_date 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f1850>
> 
>     def test_remove_uda_date(self):
>         # Check that a date UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:245: AttributeError
> ____________________ TestDBShellout.test_remove_uda_numeric 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f1390>
> 
>     def test_remove_uda_numeric(self):
>         # Check that a numeric UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw.task_add(
>             "foobar",
>             somenumber=15,
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:257: AttributeError
> ________________ TestDBShellout.test_completing_completed_task 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714f3090>
> 
>     def test_completing_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:267: AttributeError
> _________________ TestDBShellout.test_updating_completed_task 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771500cd0>
> 
>     def test_updating_completed_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:273: AttributeError
> ____________________ TestDBShellout.test_get_task_completed 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714ea450>
> 
>     def test_get_task_completed(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:280: AttributeError
> ________________ TestDBShellout.test_load_task_pending_command 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e9110>
> 
>     def test_load_task_pending_command(self):
> >       tasks = self.tw.load_tasks(command='pending')
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:288: AttributeError
> _______________ TestDBShellout.test_load_task_completed_command 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e8450>
> 
>     def test_load_task_completed_command(self):
> >       tasks = self.tw.load_tasks(command='completed')
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:293: AttributeError
> ______________ TestDBShellout.test_load_task_with_unknown_command 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714ebfd0>
> 
>     def test_load_task_with_unknown_command(self):
>         with pytest.raises(ValueError):
> >           self.tw.load_tasks(command='foobar')
> E           AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:299: AttributeError
> __________________ TestDBShellout.test_updating_deleted_task 
> ___________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e9590>
> 
>     def test_updating_deleted_task(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:302: AttributeError
> __________________________ TestDBShellout.test_delete 
> __________________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714e9d50>
> 
>     def test_delete(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:309: AttributeError
> __________________ TestDBShellout.test_delete_already_deleted 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714ea5d0>
> 
>     def test_delete_already_deleted(self):
> >       task = self.tw.task_add("foobar")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:315: AttributeError
> _________________ TestDBShellout.test_load_tasks_with_one_each 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7714eb350>
> 
>     def test_load_tasks_with_one_each(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:321: AttributeError
> _____________________ TestDBShellout.test_filtering_simple 
> _____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe77193e6d0>
> 
>     def test_filtering_simple(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:355: AttributeError
> _____________________ TestDBShellout.test_filtering_brace 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe77193f290>
> 
>     def test_filtering_brace(self):
> >       self.tw.task_add("[foobar1]")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:364: AttributeError
> _____________________ TestDBShellout.test_filtering_quote 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe77193e9d0>
> 
>     def test_filtering_quote(self):
> >       self.tw.task_add("[foobar1]")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:373: AttributeError
> ______________________ TestDBShellout.test_filtering_plus 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe77193f410>
> 
>     def test_filtering_plus(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:382: AttributeError
> _____________________ TestDBShellout.test_filtering_minus 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7715026d0>
> 
>     def test_filtering_minus(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:392: AttributeError
> _____________________ TestDBShellout.test_filtering_colon 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771502b50>
> 
>     def test_filtering_colon(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:402: AttributeError
> _____________________ TestDBShellout.test_filtering_qmark 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771503090>
> 
>     def test_filtering_qmark(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:412: AttributeError
> _______________ TestDBShellout.test_filtering_qmark_not_contains 
> _______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771503950>
> 
>     def test_filtering_qmark_not_contains(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:421: AttributeError
> ___________________ TestDBShellout.test_filtering_semicolon 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771500190>
> 
>     def test_filtering_semicolon(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:430: AttributeError
> _________________ TestDBShellout.test_filtering_question_mark 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7715015d0>
> 
>     def test_filtering_question_mark(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:440: AttributeError
> _____________________ TestDBShellout.test_filtering_slash 
> ______________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771500890>
> 
>     def test_filtering_slash(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:450: AttributeError
> _______________ TestDBShellout.test_filtering_logic_disjunction 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe77193fcd0>
> 
>     def test_filtering_logic_disjunction(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:460: AttributeError
> _______________ TestDBShellout.test_filtering_logic_conjunction 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe77193dc10>
> 
>     def test_filtering_logic_conjunction(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:474: AttributeError
> _ 
> TestDBShellout.test_filtering_logic_conjunction_junction_whats_your_function _
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7715139d0>
> 
>     def test_filtering_logic_conjunction_junction_whats_your_function(self):
> >       self.tw.task_add("foobar1")
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:486: AttributeError
> ___________________ TestDBShellout.test_annotation_escaping 
> ____________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771500a10>
> 
>     def test_annotation_escaping(self):
>         original = {'description': 're-opening the issue'}
>     
> >       self.tw.task_add('foobar')
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:503: AttributeError
> ________________ TestDBShellout.test_remove_uda_string_marshal 
> _________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771500c50>
> 
>     def test_remove_uda_string_marshal(self):
>         # Check that a string UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw_marshal.task_add(
>             "foobar",
>             somestring='this is a uda',
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw_marshal'
> 
> taskw/test/test_datas.py:517: AttributeError
> _________________ TestDBShellout.test_remove_uda_date_marshal 
> __________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771503e10>
> 
>     def test_remove_uda_date_marshal(self):
>         # Check that a date UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw_marshal.task_add(
>             "foobar",
>             somedate=datetime.datetime(2011, 1, 1),
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw_marshal'
> 
> taskw/test/test_datas.py:529: AttributeError
> ________________ TestDBShellout.test_remove_uda_numeric_marshal 
> ________________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771502910>
> 
>     def test_remove_uda_numeric_marshal(self):
>         # Check that a numeric UDA is removed from a task when its
>         # value is set to None
> >       task = self.tw_marshal.task_add(
>             "foobar",
>             somenumber=15,
>         )
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw_marshal'
> 
> taskw/test/test_datas.py:541: AttributeError
> _____________ TestDBShellout.test_add_and_retrieve_uda_string_url 
> ______________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe771501cd0>
> 
>     def test_add_and_retrieve_uda_string_url(self):
>         arbitrary_url = "http://www.someurl.com/1084/";
>     
> >       self.tw.config_overrides['uda'] = {
>             'someurl': {
>                 'label': 'Some URL',
>                 'type': 'string'
>             }
>         }
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:553: AttributeError
> ________ TestDBShellout.test_add_and_retrieve_uda_string_url_in_parens 
> _________
> 
> self = <taskw.test.test_datas.TestDBShellout object at 0x7fe7715020d0>
> 
>     def test_add_and_retrieve_uda_string_url_in_parens(self):
>         arbitrary_url = "http://www.someurl.com/1084/";
>     
> >       self.tw.config_overrides['uda'] = {
>             'someurl': {
>                 'label': 'Some URL',
>                 'type': 'string'
>             }
>         }
> E       AttributeError: 'TestDBShellout' object has no attribute 'tw'
> 
> taskw/test/test_datas.py:573: AttributeError
> ____________________ TestRecursibe.test_set_dep_on_one_uuid 
> ____________________
> 
> self = <taskw.test.test_recursive.TestRecursibe object at 0x7fe7714b0290>
> 
>     def test_set_dep_on_one_uuid(self):
> >       task1 = self.tw.task_add('task1')
> E       AttributeError: 'TestRecursibe' object has no attribute 'tw'
> 
> taskw/test/test_recursive.py:54: AttributeError
> ____________________ TestRecursibe.test_set_dep_on_two_uuid 
> ____________________
> 
> self = <taskw.test.test_recursive.TestRecursibe object at 0x7fe7714b1f50>
> 
>     def test_set_dep_on_two_uuid(self):
> >       task1 = self.tw.task_add('task1')
> E       AttributeError: 'TestRecursibe' object has no attribute 'tw'
> 
> taskw/test/test_recursive.py:59: AttributeError
> =========================== short test summary info 
> ============================
> FAILED taskw/test/test_datas.py::TestDBDirect::test_has_two_categories - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_empty_db - 
> AttributeError...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add - AttributeError: 
> 'Te...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_unchanging_load_tasks - 
> A...
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completion_raising_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_id_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_id_specified
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_id_retrieved
> FAILED taskw/test/test_datas.py::TestDBDirect::test_completing_task_by_uuid
> FAILED taskw/test/test_datas.py::TestDBDirect::test_get_task_mismatch - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_updating_task - 
> Attribute...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_update_exc - 
> AttributeErr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_complicated - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_timestamp - 
> Attribute...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_datetime - 
> AttributeE...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_with_uda_string - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_add_with_uda_date - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_remove_uda_string - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_remove_uda_date - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_remove_uda_numeric - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_completing_completed_task
> FAILED taskw/test/test_datas.py::TestDBDirect::test_updating_completed_task
> FAILED taskw/test/test_datas.py::TestDBDirect::test_get_task_completed - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_load_task_pending_command
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_load_task_completed_command
> FAILED 
> taskw/test/test_datas.py::TestDBDirect::test_load_task_with_unknown_command
> FAILED taskw/test/test_datas.py::TestDBDirect::test_updating_deleted_task - 
> A...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_delete - AttributeError: 
> ...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_delete_already_deleted - 
> ...
> FAILED taskw/test/test_datas.py::TestDBDirect::test_load_tasks_with_one_each
> FAILED taskw/test/test_datas.py::TestDBDirect::test_delete_completed - 
> Attrib...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_has_two_categories - 
> At...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_empty_db - 
> AttributeErr...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add - AttributeError: 
> '...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_unchanging_load_tasks
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completion_raising_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_id_unspecified
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_id_specified
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_id_retrieved
> FAILED taskw/test/test_datas.py::TestDBShellout::test_completing_task_by_uuid
> FAILED taskw/test/test_datas.py::TestDBShellout::test_get_task_mismatch - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_updating_task - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_update_exc - 
> AttributeE...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_complicated - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_timestamp - 
> Attribu...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_datetime - 
> Attribut...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_with_uda_string - 
> A...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_add_with_uda_date - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_string - 
> Att...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_date - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_numeric - 
> At...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_completing_completed_task
> FAILED taskw/test/test_datas.py::TestDBShellout::test_updating_completed_task
> FAILED taskw/test/test_datas.py::TestDBShellout::test_get_task_completed - 
> At...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_load_task_pending_command
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_load_task_completed_command
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_load_task_with_unknown_command
> FAILED taskw/test/test_datas.py::TestDBShellout::test_updating_deleted_task
> FAILED taskw/test/test_datas.py::TestDBShellout::test_delete - 
> AttributeError...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_delete_already_deleted
> FAILED taskw/test/test_datas.py::TestDBShellout::test_load_tasks_with_one_each
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_simple - 
> Attr...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_brace - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_quote - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_plus - 
> Attrib...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_minus - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_colon - 
> Attri...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_qmark - 
> Attri...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_qmark_not_contains
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_semicolon - 
> A...
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_question_mark
> FAILED taskw/test/test_datas.py::TestDBShellout::test_filtering_slash - 
> Attri...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_logic_disjunction
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_logic_conjunction
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_filtering_logic_conjunction_junction_whats_your_function
> FAILED taskw/test/test_datas.py::TestDBShellout::test_annotation_escaping - 
> A...
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_remove_uda_string_marshal
> FAILED taskw/test/test_datas.py::TestDBShellout::test_remove_uda_date_marshal
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_remove_uda_numeric_marshal
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_add_and_retrieve_uda_string_url
> FAILED 
> taskw/test/test_datas.py::TestDBShellout::test_add_and_retrieve_uda_string_url_in_parens
> FAILED taskw/test/test_recursive.py::TestRecursibe::test_set_dep_on_one_uuid
> FAILED taskw/test/test_recursive.py::TestRecursibe::test_set_dep_on_two_uuid
> ======================== 83 failed, 68 passed in 2.03s 
> =========================
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; python3.11 -m pytest 
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 
> 3.11" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2024/03/19/taskw_2.0.0-1_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240319;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240319&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to