More tests

This commit is contained in:
JP White 2021-03-13 23:12:42 -05:00
parent 8bbac5717f
commit c52bd200db
5 changed files with 124 additions and 13 deletions

View file

@ -41,7 +41,7 @@ lint: ## check style with flake8
flake8 gitinspector tests --count --ignore=E203,E722,W503,E401,C901 --exit-zero --max-complexity=10 --max-line-length=127 --statistics --builtins="_"
format: ## auto format all the code with black
black gitinspector --line-length 127
black ./gitinspector --line-length 127
test: ## run tests quickly with the default Python
pytest

View file

@ -65,13 +65,13 @@ class TestFileDiff(unittest.TestCase):
self.assertEqual(actual, expected)
def test_is_not_valid_extension(self):
result = changes.FileDiff.is_valid_extension(FAKE_FILE_NAME)
self.assertFalse(result)
return_value = changes.FileDiff.is_valid_extension(FAKE_FILE_NAME)
self.assertFalse(return_value)
def test_is_valid_extension(self):
test_file_name = 'Arbitrary.cpp'
result = changes.FileDiff.is_valid_extension(test_file_name)
self.assertTrue(result)
return_value = changes.FileDiff.is_valid_extension(test_file_name)
self.assertTrue(return_value)
class TestCommitClass(unittest.TestCase):
@ -104,8 +104,8 @@ class TestCommitClass(unittest.TestCase):
self.assertEqual(expected_email, actual_email)
def test_is_commit_line(self):
result = changes.Commit.is_commit_line(FAKE_COMMIT_STRING)
self.assertTrue(result)
return_value = changes.Commit.is_commit_line(FAKE_COMMIT_STRING)
self.assertTrue(return_value)
def test_add_filediff(self):
commit = changes.Commit(FAKE_COMMIT_STRING)

View file

@ -14,16 +14,16 @@ class TestConfig(unittest.TestCase):
self.assertEqual(expected_global_only, test_config.global_only)
def test_read_git_config_unknown_variable(self):
expected_result = ''
expected_return_value = ''
test_config = config.GitConfig('arbitrary', '.')
actual_result = test_config.__read_git_config__('unknown')
self.assertEqual(expected_result, actual_result)
actual_return_value = test_config.__read_git_config__('unknown')
self.assertEqual(expected_return_value, actual_return_value)
def test_read_git_config_string_unknown(self):
expected_result = (False, None)
expected_return_value = (False, None)
test_config = config.GitConfig('arbitrary', '.')
actual_result = test_config.__read_git_config_string__('unknown')
self.assertEqual(expected_result, actual_result)
actual_return_value = test_config.__read_git_config_string__('unknown')
self.assertEqual(expected_return_value, actual_return_value)
def test_read(self):
class Dummy():

36
tests/test_filtering.py Normal file
View file

@ -0,0 +1,36 @@
import unittest
from gitinspector import filtering
TEST_STRING = 'arbitrary'
class TestFiltering(unittest.TestCase):
def test_InvalidRegExpError(self):
with self.assertRaises(filtering.InvalidRegExpError):
raise filtering.InvalidRegExpError(TEST_STRING)
def test_get(self):
expected = filtering.__filters__
actual = filtering.get()
self.assertEqual(expected, actual)
def test_add(self):
filtering.add(TEST_STRING)
expected = [{TEST_STRING}, set()]
actual = filtering.get()['file']
self.assertEqual(expected, actual)
def test_get_filered(self):
filtering.add(TEST_STRING)
expected = set()
actual = filtering.get_filered()
self.assertEqual(expected, actual)
def test_has_filtered(self):
self.assertFalse(filtering.has_filtered())
def test_set_filtered(self):
test_commit_sha = '53d81bcd2612dbc47e73c71ee43baae83c1ec252'
return_value = filtering.set_filtered(test_commit_sha)
self.assertFalse(return_value)

75
tests/test_format.py Normal file
View file

@ -0,0 +1,75 @@
import os
import sys
import json
import unittest
from hashlib import sha256
from gitinspector import format
from io import StringIO
from contextlib import contextmanager
TEST_STRING = 'arbitrary'
class DummyRepo:
name = TEST_STRING
@contextmanager
def print_capture(*args, **kwds):
temp_out = StringIO() # Create the in-memory "file"
try:
sys.stdout = temp_out # Replace default stdout (terminal) with our stream
yield temp_out
finally:
sys.stdout = sys.__stdout__ # Restore default stdout
class TestFormat(unittest.TestCase):
def test_InvalidFormatError(self):
with self.assertRaises(format.InvalidFormatError):
raise format.InvalidFormatError(TEST_STRING)
def test_select(self):
test_format = 'json'
return_value = format.select(test_format)
self.assertTrue(return_value)
def test_get_selected(self):
test_format = 'json'
format.select(test_format)
expected = test_format
actual = format.get_selected()
self.assertEqual(expected, actual)
def test_is_interactive_format(self):
test_format = 'json'
format.select(test_format)
return_value = format.is_interactive_format()
self.assertFalse(return_value)
def test__output_html_template__(self):
test_template_path = os.path.join('html', 'html.header')
return_value = format.__output_html_template__(test_template_path)
return_value_hash = sha256(return_value.encode('utf-8')).hexdigest()
expected_hash = '6b113dca32e7947e21ad9ad910c4995e62672ca4c0bc34577e33d2e328da7b3a'
self.assertEqual(expected_hash, return_value_hash)
def test__get_zip_file_content__(self):
return_value = format.__get_zip_file_content__('LICENSE.txt')
return_value_hash = sha256(return_value.encode('utf-8')).hexdigest()
expected_hash = '52cb566b16d84314b92b91361ed072eaaf166e8d3dfa3d0fd3577613925f205c'
self.assertEqual(expected_hash, return_value_hash)
def test_json_output_header_and_footer(self):
test_format = 'json'
format.select(test_format)
repos = [DummyRepo()]
with print_capture() as output:
format.output_header(repos)
format.output_footer()
output_text = output.getvalue()[:-2].replace('\n', '').replace('\t', '')[:-2] + "}}"
output_json = json.loads(output_text)
self.assertIn('report_date', output_json['gitinspector'])
self.assertEqual(output_json['gitinspector']['repository'], 'arbitrary')
self.assertEqual(output_json['gitinspector']['version'], '0.5.0dev')