def test_get_simple_x_200_from_dynamodb(self): mock_dynamodb_table.make_table([{ 'package_name': 'z-0.tar.gz', 'version': '0', 'normalized_name': 'z', 'filename': 'z-0.tar.gz' }, { 'package_name': 'y-0.tar.gz', 'version': '0', 'normalized_name': 'y', 'filename': 'y-0.tar.gz' }, { 'package_name': 'x-0.tar.gz', 'version': '0', 'normalized_name': 'x', 'filename': 'x-0.tar.gz' }, { 'package_name': 'x-1.tar.gz', 'version': '1', 'normalized_name': 'x', 'filename': 'x-1.tar.gz' }]) response = self.client.get('/simple/x/', headers=self.headers) html = re.sub("href=\"https://.*\"", "href=\"https://\"", response.data) # Remove signed url since it changes self.assert200(response) self.assertEqual(html, fixtures.links_html)
def test_get_simple_x_200_from_dynamodb(self): mock_dynamodb_table.make_table([{ 'package_name': 'z-0.tar.gz', 'version': '0', 'normalized_name': 'z', 'filename': 'z-0.tar.gz' }, { 'package_name': 'y-0.tar.gz', 'version': '0', 'normalized_name': 'y', 'filename': 'y-0.tar.gz' }, { 'package_name': 'x-0.tar.gz', 'version': '0', 'normalized_name': 'x', 'filename': 'x-0.tar.gz' }, { 'package_name': 'x-1.tar.gz', 'version': '1', 'normalized_name': 'x', 'filename': 'x-1.tar.gz' }]) response = self.client.get('/simple/x/') self.assert200(response) self.assertEqual(response.data.decode(), fixtures.links_html)
def test_post_simple_200(self, upload): mock_dynamodb_table.make_table(items=[{ 'package_name': 'py-0.0.1.tar.gz', 'normalized_name': 'py', 'version': '0.1.2', 'filename': 'py-0.0.1.tar.gz', }]) f = io.BytesIO('hello'.encode('utf-8')) response = self.client.post('/simple/', data={'content': (f, 'py-0.1.2.tar.gz')}) self.assertStatus(response, 200) upload.assert_called_with('py-0.1.2.tar.gz', mock.ANY) f.close()
def test_cannot_post_file_when_package_already_exists_and_overwrite_is_false( self, upload): mock_dynamodb_table.make_table(items=[{ 'package_name': 'py-0.1.2.tar.gz', 'normalized_name': 'py', 'version': '0.1.2', 'filename': 'py-0.1.2.tar.gz', }]) f = io.BytesIO('hello'.encode('utf-8')) response = self.client.post('/simple/', data={'content': (f, 'py-0.1.2.tar.gz')}) self.assertEqual(response.status_code, 409) assert not upload.called f.close()
def test_get_simple_200_from_dynamodb(self): mock_dynamodb_table.make_table(items=[{ 'package_name': 'z', 'version': '0' }, { 'package_name': 'y', 'version': '0' }, { 'package_name': 'x', 'version': '0' }]) response = self.client.get('/simple/', headers=self.headers) self.assert200(response) self.assertEqual(response.data, fixtures.simple_html)
def test_can_post_file_when_package_exists_and_overwrite_is_true( self, config, upload): mock_dynamodb_table.make_table(items=[{ 'package_name': 'py-0.1.2.tar.gz', 'normalized_name': 'py', 'version': '0.1.2', 'filename': 'py-0.1.2.tar.gz', }]) config.return_value = {'OVERWRITE': 'true'} f = io.BytesIO('hello'.encode('utf-8')) response = self.client.post('/simple/', data={'content': (f, 'py-0.1.2.tar.gz')}) self.assertStatus(response, 200) upload.assert_called_with('py-0.1.2.tar.gz', mock.ANY) f.close()
def test_get_wheel(self): mock_dynamodb_table.make_table([{ 'package_name': 'curses-2.2-cp36-cp36m-win_amd64.whl', 'version': '2.2', 'normalized_name': 'curses', 'filename': 'curses-2.2-cp36-cp36m-win_amd64.whl' }, { 'package_name': 'y-0.tar.gz', 'version': '0', 'normalized_name': 'y', 'filename': 'y-0.tar.gz' }]) response = self.client.get('/simple/curses/') self.assert200(response) self.assertEqual(response.data.decode(), fixtures.wheel_links_html)
def test_get_simple_200_from_dynamodb(self): mock_dynamodb_table.make_table(items=[{ 'package_name': 'z.zip', 'normalized_name': 'z', 'version': '0' }, { 'package_name': 'y-0.zip', 'normalized_name': 'y', 'version': '0' }, { 'package_name': 'y-1.zip', 'normalized_name': 'y', 'version': '1' }, { 'package_name': 'x.zip', 'normalized_name': 'x', 'version': '0' }]) response = self.client.get('/simple/') self.assert200(response) self.assertEqual(response.data.decode(), fixtures.simple_html)
def setUp(self): self.dynamodb = boto3.resource('dynamodb', region_name='artic-1') self.table = mock_dynamodb_table.make_table()