Fakultas Ilmu Komputer UI

tests.py 2.77 KB
Newer Older
1
2
from django.test import TestCase, Client
from django.urls import resolve
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from .views import DaftarKatalog, listMateri
from .models import Materi
from django.core import serializers
import json


class DaftarKatalogTest(TestCase):
    def test_daftar_katalog_url_exist(self):
        url = "/"
        response = Client().get(f'{url}')
        self.assertEqual(response.status_code,200)

    def test_daftar_katalog_using_daftar_katalog_template(self):
        response = Client().get('/')
        self.assertTemplateUsed(response, 'app/katalog_materi.html')
    

    def test_daftar_katalog_using_daftar_katalog_func(self):
        found = resolve('/')
        self.assertEqual(found.func.__name__, DaftarKatalog.as_view().__name__)

    def test_fields(self):
        materi = Materi()
        materi.title = 'tes'
        materi.cover = 'https://cache.umusic.com/_sites/billieeilish/v2/images/pic-red.jpg'
        materi.author = 'input'
        materi.save()

        resp = Materi.objects.get(id = materi.id)
        self.assertEqual(resp,materi)
    
    
    def test_resolution(self):
        resolver = resolve('/list-materi/')
        self.assertEqual(resolver.func, listMateri)


    def test_fungsi_get(self):
        self.materi = Materi()
        self.materi.title = 'Wahyu'
        self.materi.cover = 'https://cache.umusic.com/_sites/billieeilish/v2/images/pic-red.jpg'
        self.materi.author = 'Saul Andre Lumban Gaol'
        self.materi.save()
        client = Client()
        
        queryset = client.get('/list-materi/')
        
        expected_output = json.dumps({"pk": self.materi.pk, "model": "app.materi", "fields": {"cover": "https://cache.umusic.com/_sites/billieeilish/v2/images/pic-red.jpg", "title": "Wahyu", "author": "Saul Andre Lumban Gaol"}})
        self.assertJSONEqual(queryset.json()[1:-1], expected_output)
Samuel Dimas's avatar
Samuel Dimas committed
52

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

class TemplateLoaderTest(TestCase):
    def test_template_loader_url_exist(self):
        url = "/test-page.html"
        response = Client().get(url)
        self.assertEqual(response.status_code, 200)

    def test_template_loader_using_template_loader_template(self):
        url = "/test-page.html"
        response = Client().get(url)
        expected_template_name = "test-page.html"
        self.assertTemplateUsed(response, expected_template_name)

    def test_template_loader_using_template_loader_func(self):
        url = "/test-page.html"
        found = resolve(url)
        expected_view_name = "pages"
        self.assertEqual(found.func.__name__, expected_view_name)

    def test_template_loader_handle_non_existent_html(self):
        url = "/test.html"
        expected_template_name = "error-404.html"
        response = Client().get(url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, expected_template_name)