def test_set_state_state(self):
        for state in WorkState:
            TypeChecks._check_set_states_inputs(ITERABLE_CONTAINERS[0](), state)

        with self.assertRaisesRegexp(ValueError,
                                     re.compile(".*Expected.*state.*")):
            TypeChecks._check_set_states_inputs(ITERABLE_CONTAINERS[0](), None)
    def test_set_state_tasks(self):
        for objtype in ITERABLE_CONTAINERS:
            TypeChecks._check_set_states_inputs(objtype(), WorkState.DONE)

        with self.assertRaisesRegexp(TypeError, re.compile(".*for.*tasks.*")):
            TypeChecks._check_set_states_inputs(None, None)
    def test_csvlog_path_time_type(self):
        checks = TypeChecks()

        with self.assertRaises(TypeError):
            for value in ("", 1, 1.0, timedelta(seconds=1)):
                checks._check_csvlog_path_inputs(uuid4(), value)
    def test_command_list(self):
        TypeChecks._check_command_list_inputs(tuple())
        TypeChecks._check_command_list_inputs([])

        with self.assertRaisesRegexp(TypeError, re.compile(".*for.*cmdlist.*")):
            TypeChecks._check_command_list_inputs(None)
    def test_csvlog_path_time(self):
        TypeChecks._check_csvlog_path_inputs(uuid4(), None)

        with self.assertRaisesRegexp(
                TypeError, re.compile("Expected None or datetime for `now`")):
            TypeChecks._check_csvlog_path_inputs(uuid4(), "")
    def test_csvlog_path_tasks(self):
        TypeChecks._check_csvlog_path_inputs(uuid4(), None)

        with self.assertRaisesRegexp(
                TypeError, re.compile("Expected UUID for `protocol_uuid`")):
            TypeChecks._check_csvlog_path_inputs(None, None)
    def test_map(self):
        for objtype in STRING_TYPES:
            TypeChecks._check_map_path_inputs(objtype())

        with self.assertRaisesRegexp(TypeError, re.compile(".*for.*path.*")):
            TypeChecks._check_map_path_inputs(None)
    def test_expandvars_environment_not_dict(self):
        TypeChecks._check_expandvars_inputs("", None)

        with self.assertRaisesRegexp(TypeError,
                                     re.compile(".*for.*environment.*")):
            TypeChecks._check_expandvars_inputs("", 1)
    def test_expandvars_value_not_string(self):
        TypeChecks._check_expandvars_inputs("", {})

        with self.assertRaisesRegexp(TypeError,
                                     re.compile(".*for.*value.*")):
            TypeChecks._check_expandvars_inputs(None, None)