def test_parse_fields_to_nested_tree_multiple_fields(self): fields_string = 'jobs,job,document,user' result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 0 and \ len(result.options) == 1, \ 'Single option field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_too_few_close_brackets(self): fields_string = 'job(value' try: result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert False, 'Expected error - too few close brackets. No error.' except CerealException: pass
def test_parse_fields_to_nested_tree_overlapping_fields(self): fields_string = 'job,job' result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert len(result.normal_fields) == 2 and \ len(result.nested_fields) == 0 and \ len(result.options) == 0, \ 'Overlapping fields string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_basic_nested(self): fields_string = 'job(user)' result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 1 and \ len(result.options) == 0, \ 'Basic nested field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_default_option(self): fields_string = ':default' result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 0 and \ len(result.options) == 1, \ 'Single option field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_multiple_open_brackets_inarow(self): fields_string = 'job((value))' try: result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert False, 'Expected error - too many open brackets. No error.' except CerealException: pass
def test_parse_fields_to_nested_tree_basic_nested_with_normal_fields(self): fields_string = 'time,job(user,document),address' result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert len(result.normal_fields) == 2 and \ len(result.nested_fields) == 1 and \ len(result.nested_fields['job'].normal_fields) == 2 and \ len(result.options) == 0, \ 'Basic nested field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_multiple_open_brackets_inarow(self): fields_string = 'job((value))' try: result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert False, 'Expected error - too many open brackets. No error.' except CerealException: pass
def test_parse_fields_to_nested_tree_basic_nested(self): fields_string = 'job(user)' result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 1 and \ len(result.options) == 0, \ 'Basic nested field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_overlapping_fields(self): fields_string = 'job,job' result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert len(result.normal_fields) == 2 and \ len(result.nested_fields) == 0 and \ len(result.options) == 0, \ 'Overlapping fields string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_multiple_fields(self): fields_string = 'jobs,job,document,user' result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 0 and \ len(result.options) == 1, \ 'Single option field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_default_option(self): fields_string = ':default' result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 0 and \ len(result.options) == 1, \ 'Single option field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_too_few_close_brackets(self): fields_string = 'job(value' try: result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert False, 'Expected error - too few close brackets. No error.' except CerealException: pass
def test_parse_fields_to_nested_tree_basic_nested_with_normal_fields(self): fields_string = 'time,job(user,document),address' result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert len(result.normal_fields) == 2 and \ len(result.nested_fields) == 1 and \ len(result.nested_fields['job'].normal_fields) == 2 and \ len(result.options) == 0, \ 'Basic nested field string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_very_nested(self): fields_string = 'a(b(c(d),e(f)),g(h(i)))' result = CerealMixin.parse_fields_to_nested_tree(fields_string) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 1 and \ len(result.options) == 0, \ 'Very nested field string input returned {0}'.format(result) assert len(result.nested_fields['a'].nested_fields) == 2, \ 'Very nested field string first nest level had error: {0}'\ .format(result.nested_fields['a']) assert len(result.nested_fields['a'].nested_fields['b'].nested_fields['e'].normal_fields) == 1, \ 'Very nested field string nest level 3 had error: {0}'\ .format(result.nested_fields['a'].nested_fields['b'].nested_fields['e']) assert len(result.nested_fields['a'].nested_fields['g'].nested_fields['h'].normal_fields) == 1, \ 'Very nested field string nest level 3 had error: {0}'\ .format(result.nested_fields['a'].nested_fields['g'].nested_fields['h'])
def test_parse_fields_to_nested_tree_very_nested(self): fields_string = 'a(b(c(d),e(f)),g(h(i)))' result = CerealMixin.parse_fields_to_nested_tree( fields_string ) assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 1 and \ len(result.options) == 0, \ 'Very nested field string input returned {0}'.format(result) assert len(result.nested_fields['a'].nested_fields) == 2, \ 'Very nested field string first nest level had error: {0}'\ .format(result.nested_fields['a']) assert len(result.nested_fields['a'].nested_fields['b'].nested_fields['e'].normal_fields) == 1, \ 'Very nested field string nest level 3 had error: {0}'\ .format(result.nested_fields['a'].nested_fields['b'].nested_fields['e']) assert len(result.nested_fields['a'].nested_fields['g'].nested_fields['h'].normal_fields) == 1, \ 'Very nested field string nest level 3 had error: {0}'\ .format(result.nested_fields['a'].nested_fields['g'].nested_fields['h'])
def test_parse_fields_to_nested_tree_empty_case(self): result = CerealMixin.parse_fields_to_nested_tree('') assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 0 and \ len(result.options) == 0, \ 'Empty string input returned {0}'.format(result)
def test_parse_fields_to_nested_tree_multiple_empty_commas(self): result = CerealMixin.parse_fields_to_nested_tree(',,,') assert len(result.normal_fields) == 0 and \ len(result.nested_fields) == 0 and \ len(result.options) == 0, \ 'Empty string with commas input returned {0}'.format(result)