tests.py 2.69 KB
Newer Older
AntonKras's avatar
AntonKras committed
1
2
3
from app import app
import unittest
import sys
4
5
from flask import request, url_for
from flask_testing import TestCase
AntonKras's avatar
AntonKras committed
6
7
8
9

class TestPageLoad(unittest.TestCase):

    def setUp(self):
10
11
12
        """
        создание тестового веб-сервиса
        """
AntonKras's avatar
AntonKras committed
13
14
15
16
        app.config['TESTING'] = True
        app.config['WTF_CSRF_ENABLED'] = False
        app.config['DEBUG'] = False

17
        sys.argv = ['app.py', 'static/urls.yml']
AntonKras's avatar
AntonKras committed
18
19
20
        self.app = app.test_client()
        self.assertEqual(app.debug, False)

21
    def test_main_page(self):
22
23
24
        """
        тест, проверяющий загрузку главной страницы
        """
AntonKras's avatar
AntonKras committed
25
26
27
        response = self.app.get('/', follow_redirects=True)
        self.assertEqual(response.status_code, 200)

28
    def test_wrong_short_url(self):
29
30
31
        """
        тест, проверяющий результат неправильно введенной короткой ссылки
        """
32
33
34
        tester = app.test_client(self)
        response = tester.get('/wwww', content_type='html/text')
        self.assertEqual(response.status_code, 404)
AntonKras's avatar
AntonKras committed
35

36
    def test_right_short_url(self):
37
38
39
        """
        тест, проверяющий результат правильно введенной короткой ссылки
        """
40
41
42
        tester = app.test_client(self)
        response = tester.get('/yah44', content_type='html/text')
        self.assertEqual(response.status_code, 302)
AntonKras's avatar
AntonKras committed
43

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    def test_post_wrong_long_url(self):
        """
        тест, проверяющий результат неправильно введенной длинной ссылки (POST-запрос)
        """
        tester = app.test_client(self)
        response = tester.post('/add', data=dict(url='wrong_url'), follow_redirects=True)
        self.assertEqual(response.status_code, 404)

    def test_post_right_long_url(self):
        """
        тест, проверяющий результат правильно введенной длинной ссылки (POST-запрос)
        """
        tester = app.test_client(self)
        response = tester.post('/add', data=dict(url='https://yandex.ru/'), follow_redirects=True)
        self.assertEqual(response.status_code, 200)


61
    # def test_redirect(self):
62
63
64
65
66
67
68
69
70
71
    #      tester = app.test_client(self)
    #      with tester:
    #          response = tester.get(url_for('/yah44'), follow_redirects=True)
    #          assert response.request.path == 'https://www.yahoo.com/'


# class TestClientUtils(TestCase):
#     def test_assert_redirects(self):
#         response = self.client.get("'/yah44'")
#         self.assertRedirects(response, "https://www.yahoo.com/")
72
73

if __name__ == '__main__':
AntonKras's avatar
AntonKras committed
74
    unittest.main()