def test_addCommandToSqlStore_whenAddingCommand_shouldBeInStore( self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands()) command_str = "some command string" directory_path = 'directory/path' command = Command(command_str, directory_context=directory_path) command_store.add_command(command) self.assertTrue(command_store.has_command(command)) self.assertFalse( command_store.has_command(Command("some other command"))) self.assertEqual(1, command_store.get_num_commands())
def test_store_add_whenCommandHasContext_shouldInsertWithContext( self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands()) command_str = "some command string" context_path = 'some/directory/context' command1 = Command(command_str, 10.0, 1, 'command info', context_path) command_str2 = "some second command" command2 = Command(command_str2, 10.0, 1, 'command info', context_path) command_store.add_command(command1) command_store.add_command(command2) self.assertEqual(2, command_store.get_num_commands())
def test_add_command_whenSameContextAddedTwice_shouldUpdateTheEntryCount( self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands()) command_str = "some command string" context_path = 'some/directory/context' command1 = Command(command_str, 11.0, 1, 'command info 1', context_path) command_store.add_command(command1) command_store.add_command(command1) results = command_store.get_command_with_context(context_path, []) self.assertEqual(1, command_store.get_num_commands()) self.assertEqual(1, len(results)) self.assertEqual(context_path, results[0].get_directory_context())
def test_addCommand_whenMultipleCommandsAndQueryParams_shouldReturnAppropriateMatchingQuery( self) -> None: store = SqlCommandStore(':memory:') self.assertEqual(0, store.get_num_commands()) command_str1 = "some command string" directory_path1 = 'directory/path' command1 = Command(command_str1, last_used=1, directory_context=directory_path1) command_str2 = "some different command" command_str3 = "different command" command2 = Command(command_str2, last_used=2, directory_context=directory_path1) command3 = Command(command_str3, last_used=3, directory_context=directory_path1) store.add_command(command1) store.add_command(command2) store.add_command(command3) commands = store.get_command_with_context(directory_path1, ['different']) self.assertEqual(2, len(commands)) result_command = commands[0] # Newer on first self.assertEqual(command3.get_unique_command_id(), result_command.get_unique_command_id())
def test_addCommand_whenCommandsDeleted_shouldNotShowupInResultsforDirSearch( self) -> None: store = SqlCommandStore(':memory:') self.assertEqual(0, store.get_num_commands()) command_str1 = "some command string" directory_path1 = 'directory/path' command1 = Command(command_str1, last_used=1, directory_context=directory_path1) command_str2 = "some different command" command2 = Command(command_str2, last_used=2, directory_context=directory_path1) store.add_command(command1) store.add_command(command2) commands = store.get_command_with_context(directory_path1, []) self.assertEqual(2, len(commands)) store.delete_command(command_str1) commands = store.get_command_with_context(directory_path1, []) self.assertEqual(1, len(commands)) self.assertEqual(commands[0].get_unique_command_id(), command2.get_unique_command_id()) store.add_command(command1) store.delete_command(command_str2) commands = store.get_command_with_context(directory_path1, []) self.assertEqual(1, len(commands)) self.assertEqual(commands[0].get_unique_command_id(), command1.get_unique_command_id()) self.assertEqual(commands[0].get_count_seen(), 1)
def test_addCommand_whenSameCommandAndContext_shouldReturnAppropriateCount( self) -> None: store = SqlCommandStore(':memory:') self.assertEqual(0, store.get_num_commands()) command_str = "some command string" directory_path = 'directory/path' command = Command(command_str, directory_context=directory_path) store.add_command(command) store.add_command(command) store.add_command(command) store.add_command(command) self.assertTrue(store.has_command(command)) self.assertEqual(1, store.get_num_commands()) commands = store.get_command_with_context(directory_path, []) self.assertEqual(1, len(commands)) result_command = commands[0] self.assertEqual(4, result_command.get_count_seen())
def test_add_commands_whenCommandAdded2Time_shouldReflectInCount( self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands()) command_str = "some command string" context_path = 'some/directory/context' context_path2 = 'notqueried/dir' command1 = Command(command_str, 11.0, 1, 'command info 1', context_path) command_str2 = "some second command" command2 = Command(command_str2, 12.0, 2, 'command info 2', context_path2) command_store.add_command(command1) command_store.add_command(command2) results = command_store.get_command_with_context(context_path, []) self.assertEqual(2, command_store.get_num_commands()) self.assertEqual(1, len(results)) self.assertEqual(context_path, results[0].get_directory_context())
def test_get_commands_from_context_whenContextQueried_shouldReturn2Commands( self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands()) command_str = "some command string" context_path = 'some/directory/context' command1 = Command(command_str, 11.0, 1, 'command info 1', context_path) command_str2 = "some second command" command2 = Command(command_str2, 12.0, 2, 'command info 2', context_path) command_store.add_command(command1) command_store.add_command(command2) results = command_store.get_command_with_context(context_path, []) self.assertEqual(2, command_store.get_num_commands()) self.assertEqual(2, len(results)) self.assertEqual(command_str2, results[0].get_unique_command_id()) self.assertEqual(command_str, results[1].get_unique_command_id()) self.assertEqual(context_path, results[0].get_directory_context()) self.assertEqual(context_path, results[1].get_directory_context())
def test_search_commands_sorted(self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands()) command_str = "some command string" command = Command(command_str, 10.0, 1) command_store.add_command(command) command_str2 = "somelater command string" command2 = Command(command_str2, 20.0, 1) command_store.add_command(command2) result = command_store.search_commands(["some"], starts_with=False, sort=True) self.assertEqual(result[0].get_unique_command_id(), command2.get_unique_command_id()) self.assertEqual(result[1].get_unique_command_id(), command.get_unique_command_id())
def test_addCommand_when2Commands_shouldReturnAppropriateTimeOrder( self) -> None: store = SqlCommandStore(':memory:') self.assertEqual(0, store.get_num_commands()) command_str1 = "some command string" directory_path1 = 'directory/path' command1 = Command(command_str1, last_used=1, directory_context=directory_path1) command_str2 = "some different command" command2 = Command(command_str2, last_used=2, directory_context=directory_path1) store.add_command(command1) store.add_command(command2) commands = store.get_command_with_context(directory_path1, []) self.assertEqual(2, len(commands)) result_command = commands[0] # Newer on first self.assertEqual(command2.get_unique_command_id(), result_command.get_unique_command_id())
def test_SqlCommandStore_isEmpty(self) -> None: command_store = SqlCommandStore(':memory:') self.assertEqual(0, command_store.get_num_commands())