tests refactoring and some fixes

This commit is contained in:
volpino
2012-05-07 19:09:08 +02:00
parent 9a39328e3b
commit d3676250ab
6 changed files with 208 additions and 135 deletions

View File

@ -8,74 +8,95 @@ class ChartTests(SystemTestCase):
Test charts
"""
url = "chart"
args = []
kwargs = {}
def test_statistics(self):
response = self.get("statistics")
self.assertEqual(response.status_code, 200)
def test_pie_versions(self):
response = self.get("chart", chart="pie-versions")
response = self.get(self.url, chart="pie-versions",
*self.args, **self.kwargs)
self.assertEqual(response.status_code, 200)
def test_pie_packages(self):
response = self.get("chart", chart="pie-packages")
response = self.get(self.url, chart="pie-packages", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
def test_packages(self):
response = self.get("chart", chart="packages")
response = self.get(self.url, chart="packages", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
def test_packages_options(self):
response = self.get("chart", chart="packages-small")
response = self.get(self.url, chart="packages-small", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
response = self.get("chart", chart="packages-weekly")
response = self.get(self.url, chart="packages-weekly", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
response = self.get("chart", chart="packages-monthly")
response = self.get(self.url, chart="packages-monthly", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
response = self.get("chart", chart="packages-yearly")
response = self.get(self.url, chart="packages-yearly", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
def test_packages_option_incorrect(self):
response = self.get("chart", chart="packages-trololol")
response = self.get(self.url, chart="packages-trololol", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 404)
def test_versions(self):
response = self.get("chart", chart="versions")
response = self.get(self.url, chart="versions", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
def test_versions_options(self):
response = self.get("chart", chart="versions-small")
response = self.get(self.url, chart="versions-small", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
response = self.get("chart", chart="versions-weekly")
response = self.get(self.url, chart="versions-weekly", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
response = self.get("chart", chart="versions-monthly")
response = self.get(self.url, chart="versions-monthly", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
response = self.get("chart", chart="versions-yearly")
response = self.get(self.url, chart="versions-yearly", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 200)
def test_versions_option_incorrect(self):
response = self.get("chart", chart="versions-trololol")
response = self.get(self.url, chart="versions-trololol", *self.args,
**self.kwargs)
self.assertEqual(response.status_code, 404)
def test_herd(self):
a_herd = HerdFactory.create()
response = self.get("chart_herd", chart="pie-packages",
herd=a_herd.herd)
self.assertEqual(response.status_code, 200)
def test_maintainer(self):
a_maintainer = MaintainerFactory.create()
response = self.get("chart_maintainer", chart="pie-packages",
maintainer_id=a_maintainer.pk)
self.assertEqual(response.status_code, 200)
class CategoryChartTests(ChartTests):
def setUp(self):
super(CategoryChartTests, self).setUp()
self.url = "chart_category"
self.kwargs = {"category": PackageFactory.create().category}
def test_category(self):
a_category = PackageFactory.create().category
response = self.get("chart_category", chart="pie-packages",
category=a_category)
self.assertEqual(response.status_code, 200)
class HerdChartTests(ChartTests):
def setUp(self):
super(HerdChartTests, self).setUp()
self.url = "chart_herd"
self.kwargs = {"herd": HerdFactory.create().herd}
class MaintainerChartTests(ChartTests):
def setUp(self):
super(MaintainerChartTests, self).setUp()
self.url = "chart_maintainer"
self.kwargs = {"maintainer_id": MaintainerFactory.create().id}

View File

@ -1,3 +1,4 @@
import StringIO
from BeautifulSoup import BeautifulSoup
from djeuscan.tests import SystemTestCase
@ -5,7 +6,7 @@ from djeuscan.tests.euscan_factory import PackageFactory, HerdFactory, \
MaintainerFactory, VersionFactory, random_string
class NavigationTest(SystemTestCase):
class PagesTest(SystemTestCase):
"""
Test main pages
"""
@ -17,80 +18,119 @@ class NavigationTest(SystemTestCase):
response = self.get("index")
self.assertEqual(response.status_code, 200)
def test_categories(self):
categories = [PackageFactory.create().category
for _ in range(10)]
response = self.get("categories")
self.assertEqual(response.status_code, 200)
soup = BeautifulSoup(response.content)
rows = soup.findAll("tr")
self.assertEqual(len(rows), len(categories))
for category in categories:
self.assertTrue(category in response.content)
def test_herds(self):
herds = [HerdFactory.create() for _ in range(10)]
packages = []
for i in range(0, 10, 2):
p = PackageFactory.create()
p.herds.add(herds[i])
p.herds.add(herds[i + 1])
packages.append(p)
response = self.get("herds")
self.assertEqual(response.status_code, 200)
soup = BeautifulSoup(response.content)
rows = soup.findAll("tr")
self.assertEqual(len(rows), len(herds))
for herd in herds:
self.assertTrue(herd.herd in response.content)
def test_maintainers(self):
maintainers = [MaintainerFactory.create() for _ in range(10)]
packages = []
for i in range(0, 10, 2):
p = PackageFactory.create()
p.maintainers.add(maintainers[i])
p.maintainers.add(maintainers[i + 1])
packages.append(p)
response = self.get("maintainers")
self.assertEqual(response.status_code, 200)
soup = BeautifulSoup(response.content)
rows = soup.findAll("tr")
self.assertEqual(len(rows), len(maintainers))
for maintainer in maintainers:
self.assertTrue(maintainer.name in response.content)
def test_overlays(self):
overlays = [random_string() for _ in range(3)]
for _ in range(3):
package = PackageFactory.create()
for overlay in overlays:
VersionFactory.create(package=package, overlay=overlay)
response = self.get("overlays")
self.assertEqual(response.status_code, 200)
soup = BeautifulSoup(response.content)
rows = soup.findAll("tr")
self.assertEqual(len(rows), len(overlays))
for overlay in overlays:
self.assertTrue(overlay in response.content)
def test_world(self):
response = self.get("world")
self.assertEqual(response.status_code, 200)
def test_about(self):
response = self.get("about")
self.assertEqual(response.status_code, 200)
class SectionTests(SystemTestCase):
def _check_table(self, response, items, attr=None):
soup = BeautifulSoup(response.content)
rows = soup.findAll("tr")
self.assertEqual(len(rows), len(items))
for item in items:
if attr:
item_str = getattr(item, attr)
else:
item_str = item
self.assertTrue(item_str in response.content)
class CategoriesTests(SectionTests):
def setUp(self):
super(CategoriesTests, self).setUp()
self.categories = [PackageFactory.create().category
for _ in range(10)]
def test_categories(self):
response = self.get("categories")
self.assertEqual(response.status_code, 200)
self._check_table(response, self.categories)
class HerdsTests(SectionTests):
def setUp(self):
super(HerdsTests, self).setUp()
self.herds = [HerdFactory.create() for _ in range(10)]
self.packages = []
for i in range(0, 10, 2):
p = PackageFactory.create()
p.herds.add(self.herds[i])
p.herds.add(self.herds[i + 1])
self.packages.append(p)
def test_herds(self):
response = self.get("herds")
self.assertEqual(response.status_code, 200)
self._check_table(response, self.herds, attr="herd")
class MaintainersTests(SectionTests):
def setUp(self):
super(MaintainersTests, self).setUp()
self.maintainers = [MaintainerFactory.create() for _ in range(10)]
self.packages = []
for i in range(0, 10, 2):
p = PackageFactory.create()
p.maintainers.add(self.maintainers[i])
p.maintainers.add(self.maintainers[i + 1])
self.packages.append(p)
def test_maintainers(self):
response = self.get("maintainers")
self.assertEqual(response.status_code, 200)
self._check_table(response, self.maintainers, attr="name")
class OverlayTests(SectionTests):
def setUp(self):
super(OverlayTests, self).setUp()
self.overlays = [random_string() for _ in range(3)]
for _ in range(3):
self.package = PackageFactory.create()
for overlay in self.overlays:
VersionFactory.create(package=self.package,
overlay=overlay)
def test_overlays(self):
response = self.get("overlays")
self.assertEqual(response.status_code, 200)
self._check_table(response, self.overlays)
class WorldScanTests(SectionTests):
def setUp(self):
super(WorldScanTests, self).setUp()
for _ in range(3):
PackageFactory.create()
self.packages = [PackageFactory.create().name for _ in range(3)]
def test_world_scan_packages(self):
response = self.post("world_scan",
data={"packages": "\n".join(self.packages)})
self.assertEqual(response.status_code, 200)
self._check_table(response, self.packages)
def test_world_scan_world(self):
world_file = StringIO.StringIO()
world_file.write("\n".join(self.packages))
world_file.name = "world"
world_file.read = world_file.getvalue
response = self.post("world_scan", data={"world": world_file})
self.assertEqual(response.status_code, 200)
self._check_table(response, self.packages)