def test_keys_can_contain_numbers_and_restricted_punctuation(self): assert_that(key_is_valid("name54"), is_(True)) assert_that(key_is_valid("name_of_thing"), is_(True)) assert_that(key_is_valid("son.of.thing"), is_(False)) assert_that(key_is_valid("name-of-thing"), is_(False)) assert_that(key_is_valid("son;of;thing"), is_(False)) assert_that(key_is_valid("son:of:thing"), is_(False))
def test_key_must_be_a_string(self): assert_that(key_is_valid(12), is_(False)) assert_that(key_is_valid(12.3), is_(False)) assert_that(key_is_valid([]), is_(False))
def test_key_cannot_be_empty(self): assert_that(key_is_valid(""), is_(False)) assert_that(key_is_valid(" "), is_(False)) assert_that(key_is_valid("\t"), is_(False))
def test_keys_must_start_with_letter_or_underscore(self): assert_that(key_is_valid("field"), is_(True)) assert_that(key_is_valid("_field"), is_(True)) assert_that(key_is_valid("field1"), is_(True)) assert_that(key_is_valid("Field1"), is_(True)) assert_that(key_is_valid("1field"), is_(False))
def test_keys_can_be_case_insensitive(self): assert_that(key_is_valid("name"), is_(True)) assert_that(key_is_valid("NAME"), is_(True))