def test_list_only_dev_packages(self): devpi_listing = [ 'http://localhost:2414/user/index1/+f/70e/3bc67b3194143/delete_me-0.2-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/313/8642d2b43a764/delete_me-0.2.tar.gz', 'http://localhost:2414/user/index1/+f/bab/f9b37c9d0d192/delete_me-0.2a1.tar.gz', 'http://localhost:2414/user/index1/+f/e8e/d9cfe14d2ef65/delete_me-0.2a1-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/842/84d1283874110/delete_me-0.2.dev2.tar.gz', 'http://localhost:2414/user/index1/+f/636/95eef6ac86c76/delete_me-0.2.dev2-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/c22/cdec16d5ddc3a/delete_me-0.1-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/45b/301745c6d8bbf/delete_me-0.1.tar.gz', ] expected_packages = { 'user/index1': {Package(devpi_listing[5])}, } devpi_client = Mock(spec=DevpiCommandWrapper) devpi_client.user = '******' devpi_client.url = 'http://localhost:2414/user/index1' devpi_client.list_indices.return_value = ['user/index1'] devpi_client.list.return_value = devpi_listing actual_packages = list_packages_by_index(devpi_client, 'user', 'delete_me', only_dev=True, version_filter=None) self.assertDictEqual(expected_packages, actual_packages)
def test_list_packages_filters(self): """ The package list must be stripped from inherited packages and [*redirected] messages """ devpi_listing = [ '*redirected: http://localhost:2414/user/index2/delete_me', 'http://localhost:2414/user/index2/+f/70e/3bc67b3194143/delete_me-0.2-py2.py3-none-any.whl', 'http://localhost:2414/user/index2/+f/313/8642d2b43a764/delete_me-0.2.tar.gz', 'http://localhost:2414/other_user/index1/+f/70e/3bc67b3194143/delete_me-0.2-py2.py3-none-any.whl', 'http://localhost:2414/other_user/index1/+f/313/8642d2b43a764/delete_me-0.2.tar.gz' ] expected_packages = {'user/index2': {Package(devpi_listing[1])}} devpi_client = Mock(spec=DevpiCommandWrapper) devpi_client.user = '******' devpi_client.url = 'http://localhost:2414/user/index2' devpi_client.list_indices.return_value = ['user/index2'] devpi_client.list.return_value = devpi_listing actual_packages = list_packages_by_index(devpi_client, 'user', 'delete_me', only_dev=False, version_filter=None) self.assertDictEqual(expected_packages, actual_packages) devpi_client.list.assert_called_once_with( '--index', 'user/index2', '--all', 'delete_me' ) # `--all` is important as otherwise not all packages will be returned
def test_list_packages_filters(self): """ The package list must be stripped from inherited packages and [*redirected] messages """ devpi_listing = [ '*redirected: http://localhost:2414/user/index2/delete_me', 'http://localhost:2414/user/index2/+f/70e/3bc67b3194143/delete_me-0.2-py2.py3-none-any.whl', 'http://localhost:2414/user/index2/+f/313/8642d2b43a764/delete_me-0.2.tar.gz', 'http://localhost:2414/other_user/index1/+f/70e/3bc67b3194143/delete_me-0.2-py2.py3-none-any.whl', 'http://localhost:2414/other_user/index1/+f/313/8642d2b43a764/delete_me-0.2.tar.gz' ] expected_packages = { 'user/index2': {Package(devpi_listing[1])} } devpi_client = Mock(spec=DevpiCommandWrapper) devpi_client.user = '******' devpi_client.url = 'http://localhost:2414/user/index2' devpi_client.list_indices.return_value = ['user/index2'] devpi_client.list.return_value = devpi_listing actual_packages = list_packages_by_index(devpi_client, 'user', 'delete_me', only_dev=False, version_filter=None) self.assertDictEqual(expected_packages, actual_packages) devpi_client.list.assert_called_once_with('--index', 'user/index2', '--all', 'delete_me') # `--all` is important as otherwise not all packages will be returned
def test_list_packages_on_specified_index(self): devpi_listing = [ 'http://dummy-server/user/eins/+f/70e/3bc67b3194143/dummy-1.0.tar.gz', 'http://dummy-server/user/zwei/+f/70e/3bc67b3194144/dummy-2.0.tar.gz', ] expected_packages = { 'user/eins': {Package(devpi_listing[0])}, } devpi_client = Mock(spec=DevpiCommandWrapper) devpi_client.user = '******' devpi_client.list_indices.return_value = ['user/eins', 'user/zwei'] devpi_client.list.side_effect = [[package] for package in devpi_listing] devpi_client.url = 'http://dummy-server/user' actual_packages = list_packages_by_index(devpi_client, 'user/eins', 'dummy', only_dev=False, version_filter=None) self.assertDictEqual(expected_packages, actual_packages)
def test_list_packages_on_specified_index(self): devpi_listing = [ 'http://dummy-server/user/eins/+f/70e/3bc67b3194143/dummy-1.0.tar.gz', 'http://dummy-server/user/zwei/+f/70e/3bc67b3194144/dummy-2.0.tar.gz', ] expected_packages = { 'user/eins': {Package(devpi_listing[0])}, } devpi_client = Mock(spec=DevpiCommandWrapper) devpi_client.user = '******' devpi_client.list_indices.return_value = ['user/eins', 'user/zwei'] devpi_client.list.side_effect = [[package] for package in devpi_listing] devpi_client.url = 'http://dummy-server/user' actual_packages = list_packages_by_index(devpi_client, 'user/eins', 'dummy', only_dev=False, version_filter=None) self.assertDictEqual(expected_packages, actual_packages)
def test_list_only_packages_matching_version_filter(self): devpi_listing = [ 'http://localhost:2414/user/index1/+f/70e/3bc67b3194143/delete_me-0.2-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/313/8642d2b43a764/delete_me-0.2.tar.gz', 'http://localhost:2414/user/index1/+f/bab/f9b37c9d0d192/delete_me-0.2a1.tar.gz', 'http://localhost:2414/user/index1/+f/e8e/d9cfe14d2ef65/delete_me-0.2a1-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/842/84d1283874110/delete_me-0.2.dev2.tar.gz', 'http://localhost:2414/user/index1/+f/636/95eef6ac86c76/delete_me-0.2.dev2-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/c22/cdec16d5ddc3a/delete_me-0.1-py2.py3-none-any.whl', 'http://localhost:2414/user/index1/+f/45b/301745c6d8bbf/delete_me-0.1.tar.gz', ] expected_packages = { 'user/index1': {Package(devpi_listing[2])}, } devpi_client = Mock(spec=DevpiCommandWrapper) devpi_client.user = '******' devpi_client.url = 'http://localhost:2414/user/index1' devpi_client.list_indices.return_value = ['user/index1'] devpi_client.list.return_value = devpi_listing actual_packages = list_packages_by_index(devpi_client, 'user', 'delete_me', only_dev=False, version_filter=r'a\d+') self.assertDictEqual(expected_packages, actual_packages)