def test_gen_new_name(mock_ckan_session_query): class MockSessionQuery: def __init__(self, name): self.name = name self.first_query = True def filter(self, *arg): mock_return = Mock() if self.first_query: self.first_query = False if self.name: mock_pkg_query = Mock() mock_pkg_query.name = self.name else: mock_pkg_query = None mock_return.order_by.return_value.first.return_value = mock_pkg_query return mock_return else: mock_return = Mock() mock_return.first.return_value = None return mock_return harvester = GeminiHarvester() mock_ckan_session_query.return_value = MockSessionQuery(None) assert harvester.gen_new_name('Some test') == 'some-test' mock_ckan_session_query.return_value = MockSessionQuery('some-test') assert harvester.gen_new_name('Some test') == 'some-test1' mock_ckan_session_query.return_value = MockSessionQuery('some-test100') assert harvester.gen_new_name('Some test') == 'some-test101'