Your message dated Thu, 28 Mar 2024 08:38:56 +0000
with message-id <e1rplhk-00aicb...@fasolo.debian.org>
and subject line Bug#1067297: fixed in taskw 2.0.0-2
has caused the Debian Bug report #1067297,
regarding taskw: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i 
python{version} -p "3.12 3.11" returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1067297: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1067297
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: taskw
Version: 2.0.0-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
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;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240319&fusertaguser=lu...@debian.org&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.

--- End Message ---
--- Begin Message ---
Source: taskw
Source-Version: 2.0.0-2
Done: Jochen Sprickerhof <jspri...@debian.org>

We believe that the bug you reported is fixed in the latest version of
taskw, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1067...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jochen Sprickerhof <jspri...@debian.org> (supplier of updated taskw package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 28 Mar 2024 08:19:05 +0100
Source: taskw
Architecture: source
Version: 2.0.0-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+pyt...@tracker.debian.org>
Changed-By: Jochen Sprickerhof <jspri...@debian.org>
Closes: 1067297
Changes:
 taskw (2.0.0-2) unstable; urgency=medium
 .
   * Team upload.
 .
   [ Alexandre Detiste ]
   * remove obsolete python3-six dependency
 .
   [ Jochen Sprickerhof ]
   * Update for python-3.12
   * Update dependencies
   * Bump policy version (no changes)
   * Enable autopkgtest-pkg-pybuild
   * Use debian/clean
   * Fix tests with new pytest (Closes: #1067297)
Checksums-Sha1:
 e0ab127dee22f4802c908829aee049038f5e42d3 2253 taskw_2.0.0-2.dsc
 b9613fd7063b6292a6e33b41e9ef384881c3f26d 5420 taskw_2.0.0-2.debian.tar.xz
Checksums-Sha256:
 562bac67e4e0c9dbf24d7021c02c8e1bad9e42e326fdfc94d804d636cfae9ee0 2253 
taskw_2.0.0-2.dsc
 1c6462125fa29d2b630a4241230203459415422852ce8c5c8a4a82ba02b66181 5420 
taskw_2.0.0-2.debian.tar.xz
Files:
 8d04fbedcb34f739136fcb5cda9e8757 2253 python optional taskw_2.0.0-2.dsc
 e5aaff83169e5af9f03cd0db73fdcbae 5420 python optional 
taskw_2.0.0-2.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEEc7KZy9TurdzAF+h6W//cwljmlDMFAmYFJeIUHGpzcHJpY2tl
QGRlYmlhbi5vcmcACgkQW//cwljmlDM+GQ//dpUlsXSSHF9/lcBQPEgtT0vAJwu2
pWFJHeEMUTEQhWS/Ad/PNnu9g5hd/SIl0Hlb+81MMmUiJxHgu3ruGIIK4DfdE4dL
ltlMHPgNgpc92iX9ErG84wZ5XvnVHy3kD/NkAZH7lC0V5gBJRsfiWIXMiC2EuD+5
cpOgm4Bau3MrCmx2fMFv2CCeRBDqrPyQI41KfDbUHE2UAbMig5l221p7q7ZUHrof
feMvZEPnuyczxLzBNS7qxNu9QsS3FT+5sDo4/ve48rAhHt+qdTYNwQweflgxhQvn
8Ee7EEc9K8DKL9itEV5kqb+wbvWM4qM5DjraocmBfRz1KdIf21V/eGl4SB8hKmoZ
urxZ6E64oEy9AzPgtiuFXIDYFnJfSutbgEFYYrU5vAcS3STOcwe/HXtYmeQLDT0x
H7P3vaUYCy/LIRcRNEaTY11ZAoCSLMPjimzNpdDGRHLuSbARgVRXE/UNCmyFMaC2
EDJnjlReDjWNLLhUyitkZLCb1ubu/N/7i6Spl/JCffeOqCISgJ22hCMBFKfd8mbB
B0dIJOGx+DZdkL7KsyB7yn1EHTKzSJ8mjvfXseyAYwSv7P1lvnoWfKgDV6c67jm4
e3DIneZoIRHBD1JQk4+gxqxzNLWmtk5TB+dPAERL3sRy1hrzRvJDNqXzCttZVOcM
3DA5sNwJpYjY0WA=
=GO/W
-----END PGP SIGNATURE-----

Attachment: pgpFmDM4EXNph.pgp
Description: PGP signature


--- End Message ---

Reply via email to