def test_init(self):
        """Test Tru class constructor.

        This involves just database-related specifications right now.
        """

        # Try all combinations of arguments to Tru constructor.
        test_args = dict()
        test_args["database_url"] = [None, "sqlite:///some_filename.db"]
        test_args["database_redact_keys"] = [None, True, False]

        for url in test_args["database_url"]:
            for redact in test_args["database_redact_keys"]:
                with self.subTest(url=url, redact=redact):
                    args = dict()
                    if url is not None:
                        args["database_url"] = url
                    if redact is not None:
                        args["database_redact_keys"] = redact

                    try:
                        session = core_session.TruSession(**args)
                    finally:
                        if session is not None:
                            session.delete_singleton_by_name(None)

                    if session is None:
                        continue

                    # Do some db operations to the expected files get created.
                    session.reset_database()

                    # Check that the expected files were created.
                    if url is not None:
                        self.assertTrue(Path("some_filename.db").exists())
                    else:
                        self.assertTrue(Path("default.sqlite").exists())

                # Need to delete singleton after test as otherwise we
                # cannot change the arguments in next test.
Test Tru class constructor.

        This involves just database-related specifications right now.
        
tests/e2e/test_tru_session.py