forked from tk0miya/flake8-coding
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_tests.py
143 lines (118 loc) · 5.1 KB
/
run_tests.py
1
2
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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# -*- coding: utf-8 -*-
import unittest
from collections import namedtuple
from flake8_coding import CodingChecker
from mock import patch
Options = namedtuple('Options', 'no_accept_encodings, accept_encodings')
class TestFlake8Coding(unittest.TestCase):
def test_has_utf8_coding_header(self):
checker = CodingChecker(None, 'testsuite/utf8.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(ret, [])
def test_file_not_found(self):
checker = CodingChecker(None, 'file_not_found')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(ret, [])
def test_empty_file(self):
checker = CodingChecker(None, 'testsuite/empty.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(ret, [])
def test_has_latin1_coding_header(self):
checker = CodingChecker(None, 'testsuite/latin1.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(ret, [])
def test_has_coding_header_at_2nd_line(self):
checker = CodingChecker(None, 'testsuite/2nd-line.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(ret, [])
def test_has_coding_header_at_3rd_line(self):
checker = CodingChecker(None, 'testsuite/3rd-line.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(len(ret), 1)
self.assertEqual(ret[0][0], 1)
self.assertEqual(ret[0][1], 0)
self.assertTrue(ret[0][2].startswith('C101 '))
def test_has_vim_styled_coding_header(self):
checker = CodingChecker(None, 'testsuite/vim-style.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(ret, [])
def test_has_coding_header_with_invalid_encoding_name(self):
checker = CodingChecker(None, 'testsuite/invalid.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(len(ret), 1)
self.assertEqual(ret[0][0], 2)
self.assertEqual(ret[0][1], 0)
self.assertTrue(ret[0][2].startswith('C102 '))
def test_has_no_coding_headers(self):
checker = CodingChecker(None, 'testsuite/nocodings.py')
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(len(ret), 1)
self.assertEqual(ret[0][0], 1)
self.assertEqual(ret[0][1], 0)
self.assertTrue(ret[0][2].startswith('C101 '))
def test_default_encoding(self):
try:
options = Options(False, 'latin-1, utf-8')
CodingChecker.parse_options(options)
self.assertEqual(CodingChecker.encodings, ['latin-1', 'utf-8'])
finally:
if hasattr(CodingChecker, 'encodings'):
del CodingChecker.encodings
def test_change_encoding(self):
try:
options = Options(False, 'utf-8,utf-16')
CodingChecker.parse_options(options)
self.assertEqual(CodingChecker.encodings, ['utf-8', 'utf-16'])
finally:
if hasattr(CodingChecker, 'encodings'):
del CodingChecker.encodings
def test_stdin(self):
try:
from flake8.engine import pep8 as stdin_utils # noqa
target = 'flake8.engine.pep8.stdin_get_value'
except ImportError:
from flake8 import utils as stdin_utils # noqa
target = 'flake8.utils.stdin_get_value'
with patch(target) as stdin_get_value:
with open('testsuite/nocodings.py') as fp:
stdin_get_value.return_value = fp.read()
for input in ['stdin', '-', None]:
checker = CodingChecker(None, input)
checker.encodings = ['latin-1', 'utf-8']
ret = list(checker.run())
self.assertEqual(len(ret), 1)
self.assertEqual(ret[0][0], 1)
self.assertEqual(ret[0][1], 0)
self.assertTrue(ret[0][2].startswith('C101 '))
def test_no_accept_encodings_sets_encodings_none(self):
try:
options = Options(True, 'latin-1,utf-8')
CodingChecker.parse_options(options)
self.assertTrue(CodingChecker.encodings is None)
finally:
if hasattr(CodingChecker, 'encodings'):
del CodingChecker.encodings
def test_encoding_none_with_no_coding_comment(self):
checker = CodingChecker(None, 'testsuite/nocoding.py')
checker.encodings = None
ret = list(checker.run())
self.assertEqual(ret, [])
def test_encoding_none_with_coding_comment(self):
checker = CodingChecker(None, 'testsuite/utf8.py')
checker.encodings = None
ret = list(checker.run())
self.assertEqual(len(ret), 1)
self.assertEqual(ret[0][0], 1)
self.assertEqual(ret[0][1], 0)
self.assertTrue(ret[0][2].startswith('C103 '))
if __name__ == '__main__':
unittest.main()