From efa1909b2fa955e5170eecda8d1d42598c817f07 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 25 Sep 2015 01:02:27 -0400 Subject: Create 'pre-commit', add Python tests * Create our 'pre-commit' hook script that runs flake8 on Python files in the staging area. * Update test setup to create a git repository for testing. * Add a test for the Python linter to confirm that it produces the correct output when trying to commit and that it only checks files in the staging index. --- t/001-setup.t | 9 +++++++++ t/100-python.t | 29 +++++++++++++++++++++++++++++ t/test.py | 5 +++++ t/uncommitted.py | 1 + 4 files changed, 44 insertions(+) create mode 100644 t/100-python.t create mode 100644 t/test.py create mode 100644 t/uncommitted.py (limited to 't') diff --git a/t/001-setup.t b/t/001-setup.t index 0789bd7..0c6578c 100644 --- a/t/001-setup.t +++ b/t/001-setup.t @@ -10,4 +10,13 @@ ok !$?; chdir 't/git-repo' or die $!; +system('git init'); +ok !$?; + +system('cp ../../pre-commit .git/hooks'); +ok !$?; + +system('chmod +x .git/hooks/pre-commit'); +ok !$?; + done_testing; diff --git a/t/100-python.t b/t/100-python.t new file mode 100644 index 0000000..8e9b403 --- /dev/null +++ b/t/100-python.t @@ -0,0 +1,29 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Test::More; + +chdir 't/git-repo/' or die $!; + +system('cp ../*.py .'); +ok !$?; + +my $output = `ls -1`; + +ok $output eq 'test.py +uncommitted.py +', 'Both test Python files are present'; + +system('git add test.py'); +ok !$?; + +$output = `git commit 2>&1`; + +ok $output eq "test.py:1:1: F401 'datetime' imported but unused +test.py:3:80: E501 line too long (97 > 79 characters) +test.py:5:31: E225 missing whitespace around operator +", 'flake8 ran on committed Python file'; + +done_testing; diff --git a/t/test.py b/t/test.py new file mode 100644 index 0000000..2878abd --- /dev/null +++ b/t/test.py @@ -0,0 +1,5 @@ +import datetime + +'this is a long that is longer than 79 characters, or it will be whenever this sentence finishes' + +missing_spaces_around_operator=0 diff --git a/t/uncommitted.py b/t/uncommitted.py new file mode 100644 index 0000000..0f43f2a --- /dev/null +++ b/t/uncommitted.py @@ -0,0 +1 @@ +import math -- cgit v1.2.3