Skip to content
This repository has been archived by the owner on Dec 13, 2020. It is now read-only.

Commit

Permalink
Finished testing pypi.packages view.
Browse files Browse the repository at this point in the history
  • Loading branch information
Robpol86 committed Aug 24, 2014
1 parent 6214ae1 commit 5191ba3
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions tests/views/test_pypi_packages.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
from flask import current_app
from flask.ext.celery import CELERY_LOCK
import pytest

from pypi_portal.extensions import db, redis
from pypi_portal.models.pypi import Package
from pypi_portal.models.redis import POLL_SIMPLE_THROTTLE
from pypi_portal.tasks import pypi


class FakeDelay(object):
@staticmethod
def ready():
return False


def test_index():
Expand Down Expand Up @@ -77,3 +85,32 @@ def test_sync_many(alter_xmlrpc):
]
actual = db.session.query(Package.name, Package.summary, Package.latest_version).all()
assert sorted(expected) == sorted(actual)


def test_sync_unhandled_exception():
old_throttle = pypi.THROTTLE
pypi.THROTTLE = 'nan'
redis.delete(POLL_SIMPLE_THROTTLE)

with pytest.raises(ValueError):
current_app.test_client().get('/pypi/sync').status()

pypi.THROTTLE = old_throttle


def test_sync_timeout():
old_delay = pypi.update_package_list.delay
pypi.update_package_list.delay = FakeDelay
redis.delete(POLL_SIMPLE_THROTTLE)

assert '302 FOUND' == current_app.test_client().get('/pypi/sync').status

expected = [
('packageB', 'Test package.', '3.0.0'), ('packageB1', 'Test package.', '3.0.0'),
('packageB2', 'Test package.', '3.0.0'), ('packageB3', 'Test package.', '3.0.0'),
('packageB4', 'Test package.', '3.0.0'), ('packageB5', 'Test package.', '3.0.0'),
]
actual = db.session.query(Package.name, Package.summary, Package.latest_version).all()
assert sorted(expected) == sorted(actual)

pypi.update_package_list.delay = old_delay

0 comments on commit 5191ba3

Please sign in to comment.