def test_errors__cast__just_strings(self): for errors in ('cast', False): joined = __unit__.join(self.DELIMITER, self.ITERABLE, errors=errors) self.assertEquals(self.JOINED, joined)
def test_default(self): joined = __unit__.join(self.DELIMITER, self.ITERABLE) self.assertEquals(self.JOINED, joined)
def test_errors__default__strings_with_numbers(self): with self.assertRaises(TypeError): __unit__.join(self.DELIMITER, self.ITERABLE_WITH_NUMBERS)
def test_delimiter__empty(self): expected = reduce(str.__add__, self.ITERABLE, '') joined = __unit__.join('', self.ITERABLE) self.assertEquals(expected, joined)
def test_iterable__empty__sequence(self): expected = "" joined = __unit__.join(self.DELIMITER, ()) self.assertEquals(expected, joined)
def test_errors__replace__just_strings__no_with(self): with self.assertRaises(ValueError) as r: __unit__.join(self.DELIMITER, self.ITERABLE, errors='replace') self.assertIn("with_", str(r.exception))
def test_delimiter__non_string(self): with self.assertRaises(TypeError): __unit__.join(object(), self.ITERABLE)
def test_errors__unexpected(self): errors = 'unexpected' with self.assertRaises(TypeError) as r: __unit__.join(self.DELIMITER, self.ITERABLE, errors=errors) self.assertIn(repr(errors), str(r.exception))
def test_iterable__empty__generator(self): expected = "" joined = __unit__.join(self.DELIMITER, (x for x in ())) self.assertEquals(expected, joined)
def test_iterable__non_iterable(self): with self.assertRaises(TypeError): __unit__.join(self.DELIMITER, object())
def test_errors__ignore__just_strings(self): for errors in ('ignore', None): joined = __unit__.join(self.DELIMITER, self.ITERABLE, errors=errors) self.assertEquals(self.JOINED, joined)
def test_errors__raise__strings_with_numbers(self): for errors in ('raise', True): with self.assertRaises(TypeError): __unit__.join(self.DELIMITER, self.ITERABLE_WITH_NUMBERS, errors=errors)
def test_errors__replace__with_none(self): with self.assertRaises(TypeError): __unit__.join(self.DELIMITER, self.ITERABLE, errors='replace', with_=None)
def test_errors__replace__just_strings__with_function(self): joined = __unit__.join(self.DELIMITER, self.ITERABLE, errors='replace', with_=self.FUNCTION_REPLACEMENT) self.assertEquals(self.JOINED, joined)
def test_errors__cast__strings_with_numbers(self): for errors in ('cast', False): joined = __unit__.join(self.DELIMITER, self.ITERABLE_WITH_NUMBERS, errors=errors) self.assertEquals(self.JOINED_WITH_CASTED_NUMBERS, joined)
def test_errors__ignore__strings_with_numbers(self): for errors in ('ignore', None): joined = __unit__.join(self.DELIMITER, self.ITERABLE_WITH_NUMBERS, errors=errors) self.assertEquals(self.JOINED, joined)
def test_errors__replace__with_some_object(self): with self.assertRaises(TypeError): __unit__.join(self.DELIMITER, self.ITERABLE, errors='replace', with_=object())
def test_errors__replace__strings_with_nones__with_string(self): joined = __unit__.join(self.DELIMITER, self.ITERABLE_WITH_NONES, errors='replace', with_=self.STRING_REPLACEMENT) self.assertEquals(self.JOINED_WITH_REPLACEMENTS, joined)
def test_errors__replace__just_strings__with_function(self): joined = __unit__.join( self.DELIMITER, self.ITERABLE, errors='replace', with_=self.FUNCTION_REPLACEMENT) self.assertEquals(self.JOINED, joined)
def test_errors__replace__strings_with_numbers__with_function(self): joined = __unit__.join( self.DELIMITER, self.ITERABLE_WITH_NUMBERS, errors='replace', with_=self.FUNCTION_REPLACEMENT) self.assertEquals(self.JOINED_WITH_REPLACEMENTS, joined)
def test_delimiter__none(self): with self.assertRaises(TypeError): __unit__.join(None, self.ITERABLE)
def test_errors__replace__strings_with_numbers__with_function(self): joined = __unit__.join(self.DELIMITER, self.ITERABLE_WITH_NUMBERS, errors='replace', with_=self.FUNCTION_REPLACEMENT) self.assertEquals(self.JOINED_WITH_REPLACEMENTS, joined)