Skip to content

Commit 68e5f29

Browse files
committed
releng: convert to pytest fixtures
1 parent 0d784ed commit 68e5f29

File tree

5 files changed

+58
-73
lines changed

5 files changed

+58
-73
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ packages, you will probably want the following:
5959
./manage.py loaddata main/fixtures/*.json
6060
./manage.py loaddata devel/fixtures/*.json
6161
./manage.py loaddata mirrors/fixtures/*.json
62-
./manage.py loaddata releng/fixtures/*.json
6362

6463
6. Use the following commands to start a service instance
6564

releng/fixtures/release.json

Lines changed: 0 additions & 17 deletions
This file was deleted.

releng/tests/conftest.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from datetime import datetime
2+
3+
import pytest
4+
5+
from releng.models import Release
6+
7+
8+
VERSION = '1.0'
9+
KERNEL_VERSION = '4.18'
10+
11+
12+
@pytest.fixture
13+
def release(db):
14+
release = Release.objects.create(release_date=datetime.now(),
15+
version=VERSION,
16+
kernel_version=KERNEL_VERSION)
17+
yield release
18+
release.delete()

releng/tests/test_models.py

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
1-
from django.test import TestCase
1+
def test_feed(client, release):
2+
response = client.get('/feeds/releases/')
3+
assert response.status_code == 200
24

3-
from releng.models import Release
45

6+
def test_absolute_url(release):
7+
assert release.version in release.get_absolute_url()
58

6-
class RelengTest(TestCase):
7-
fixtures = ['releng/fixtures/release.json']
89

9-
def setUp(self):
10-
self.release = Release.objects.first()
10+
def test_iso_url(release):
11+
url = release.iso_url()
12+
ver = release.version
13+
expected = 'iso/{}/archlinux-{}-x86_64.iso'.format(ver, ver)
14+
assert url == expected
1115

12-
def test_feed(self):
13-
response = self.client.get('/feeds/releases/')
14-
self.assertEqual(response.status_code, 200)
1516

16-
def test_absolute_url(self):
17-
self.assertIn(self.release.version, self.release.get_absolute_url())
17+
def test_info_html(release):
18+
assert release.info in release.info_html()
1819

19-
def test_iso_url(self):
20-
url = self.release.iso_url()
21-
ver = self.release.version
22-
expected = 'iso/{}/archlinux-{}-x86_64.iso'.format(ver, ver)
23-
self.assertEqual(url, expected)
2420

25-
def test_info_html(self):
26-
self.assertIn(self.release.info, self.release.info_html())
21+
def test_dir_path(release):
22+
dir_path = u'iso/{}/'.format(release.version)
23+
assert dir_path == release.dir_path()
2724

28-
def test_dir_path(self):
29-
dir_path = u'iso/{}/'.format(self.release.version)
30-
self.assertEqual(dir_path, self.release.dir_path())
3125

32-
def test_sitemap(self):
33-
response = self.client.get('/sitemap-releases.xml')
34-
self.assertEqual(response.status_code, 200)
26+
def test_sitemap(client, release):
27+
response = client.get('/sitemap-releases.xml')
28+
assert response.status_code == 200

releng/tests/test_views.py

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,31 @@
1-
from django.test import TestCase
1+
def test_release_json(client, release):
2+
version = release.version
3+
response = client.get('/releng/releases/json/')
4+
assert response.status_code == 200
25

3-
from releng.models import Release
6+
data = response.json()
7+
assert data['version'] == 1
8+
release = data['releases'][0]
9+
assert release['version'] == version
410

511

6-
class RelengViewTest(TestCase):
7-
fixtures = ['releng/fixtures/release.json']
12+
def test_netboot_page(db, client):
13+
response = client.get('/releng/netboot/')
14+
assert response.status_code == 200
815

9-
def setUp(self):
10-
self.release = Release.objects.first()
1116

12-
def test_release_json(self):
13-
version = self.release.version
14-
response = self.client.get('/releng/releases/json/')
15-
self.assertEqual(response.status_code, 200)
16-
data = response.json()
17+
def test_netboot_config(db, client):
18+
response = client.get('/releng/netboot/archlinux.ipxe')
19+
assert response.status_code == 200
1720

18-
self.assertEqual(data['version'], 1)
19-
release = data['releases'][0]
20-
self.assertEqual(release['version'], version)
2121

22-
def test_netboot_page(self):
23-
response = self.client.get('/releng/netboot/')
24-
self.assertEqual(response.status_code, 200)
22+
def test_release_torrent_not_found(client, release):
23+
# TODO: Add torrent data to release fixture
24+
response = client.get('/releng/releases/{}/torrent/'.format(release.version))
25+
assert response.status_code == 404
2526

26-
def test_netboot_config(self):
27-
response = self.client.get('/releng/netboot/archlinux.ipxe')
28-
self.assertEqual(response.status_code, 200)
2927

30-
def test_release_torrent_not_found(self):
31-
# TODO: Add torrent data to release fixture
32-
version = self.release.version
33-
response = self.client.get('/releng/releases/{}/torrent/'.format(version))
34-
self.assertEqual(response.status_code, 404)
35-
36-
def test_release_details(self):
37-
version = self.release.version
38-
response = self.client.get('/releng/releases/{}/'.format(version))
39-
self.assertEqual(response.status_code, 200)
40-
self.assertIn(version, response.content.decode('utf-8'))
28+
def test_release_details(client, release):
29+
response = client.get('/releng/releases/{}/'.format(release.version))
30+
assert response.status_code == 200
31+
assert release.version in response.content.decode()

0 commit comments

Comments
 (0)