def test_BugCommandGroup_add_bug_non_empty_group(self): # Non-empty BugCommandGroups are added. group = BugCommandGroups([]) bug_group = BugCommandGroup(BugEmailCommands.get('private', ['true'])) group.add(bug_group) self.assertEqual([], group._commands) self.assertEqual([bug_group], group._groups)
def test_BugCommandGroups_add_bug_empty_group(self): # Empty BugCommandGroups are ignored. group = BugCommandGroups([]) group.add( BugCommandGroup()) self.assertEqual([], group._commands) self.assertEqual([], group._groups)
def test_BugCommandGroups_add_bug_email_command(self): # BugEmailCommands are ignored. group = BugCommandGroups([]) group.add( BugEmailCommands.get('private', ['true'])) self.assertEqual([], group._commands) self.assertEqual([], group._groups)
def test_BugCommandGroup_add_bug_non_empty_group(self): # Non-empty BugCommandGroups are added. group = BugCommandGroups([]) bug_group = BugCommandGroup( BugEmailCommands.get('private', ['true'])) group.add(bug_group) self.assertEqual([], group._commands) self.assertEqual([bug_group], group._groups)
def test_BugCommandGroups__iter_(self): email_commands = [ ('bug', '1234'), ('importance', 'high'), ('private', 'yes'), ('bug', 'new'), ('security', 'yes'), ('status', 'triaged'), ('affects', 'fnord'), ] commands = [ BugEmailCommands.get(name=name, string_args=[args]) for name, args in email_commands ] ordered_commands = list(BugCommandGroups(commands)) expected = [ 'bug 1234', 'private yes', 'importance high', 'bug new', 'security yes', 'affects fnord', 'status triaged', ] self.assertEqual(expected, [str(command) for command in ordered_commands])
def test_BugCommandGroups_init_many_bugs(self): # Commands can operate on many bugs. email_commands = [ ('bug', '1234'), ('importance', 'high'), ('bug', '5678'), ('importance', 'low'), ('bug', '4321'), ('importance', 'medium'), ] commands = [ BugEmailCommands.get(name=name, string_args=[args]) for name, args in email_commands ] ordered_commands = BugCommandGroups(commands) expected = '\n'.join([ 'bug 1234', 'importance high', 'bug 5678', 'importance low', 'bug 4321', 'importance medium', ]) self.assertEqual(3, len(ordered_commands.groups)) self.assertEqual(expected, str(ordered_commands))
def test_BugCommandGroups__init__one_bug_many_bugtask(self): # Commands can operate on one bug and one bugtask. email_commands = [ ('bug', 'new'), ('affects', 'fnord'), ('importance', 'high'), ('private', 'true'), ('affects', 'pting'), ('importance', 'low'), ] commands = [ BugEmailCommands.get(name=name, string_args=[args]) for name, args in email_commands ] ordered_commands = BugCommandGroups(commands) expected = '\n'.join([ 'bug new', 'private true', 'affects fnord', 'importance high', 'affects pting', 'importance low', ]) self.assertEqual(1, len(ordered_commands.groups)) self.assertEqual(2, len(ordered_commands.groups[0].commands)) self.assertEqual(2, len(ordered_commands.groups[0].groups)) self.assertEqual(2, len(ordered_commands.groups[0].groups[0].commands)) self.assertEqual(2, len(ordered_commands.groups[0].groups[1].commands)) self.assertEqual(expected, str(ordered_commands))
def test_BugCommandGroups__init__one_bug_no_bugtasks(self): # Commands can operate on one bug. email_commands = [ ('bug', '1234'), ('private', 'true'), ] commands = [ BugEmailCommands.get(name=name, string_args=[args]) for name, args in email_commands] ordered_commands = BugCommandGroups(commands) expected = '\n'.join([ 'bug 1234', 'private true', ]) self.assertEqual(1, len(ordered_commands.groups)) self.assertEqual(2, len(ordered_commands.groups[0].commands)) self.assertEqual(0, len(ordered_commands.groups[0].groups)) self.assertEqual(expected, str(ordered_commands))
def test_BugCommandGroups__init__no_commands(self): # Emails may not contain any commands to group. ordered_commands = BugCommandGroups([]) self.assertEqual(0, len(ordered_commands.groups)) self.assertEqual('', str(ordered_commands))