From 64fa1ca7da69a66bd3c1a30c883654272fc78de7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 16 Apr 2014 18:47:01 +0100 Subject: Add test for simple copyright statement --- copyright-statement-lint | 9 +++++++++ yarns/010-tests.yarn | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/copyright-statement-lint b/copyright-statement-lint index db61ded..5ca8033 100755 --- a/copyright-statement-lint +++ b/copyright-statement-lint @@ -32,6 +32,12 @@ copyright_pattern = re.compile( class CopyrightStatementLint(cliapp.Application): + def add_settings(self): + self.settings.integer( + ['debug-commit-year'], + 'pretend the commit is from YEAR', + metavar='YEAR') + def setup(self): self.errors = False @@ -61,6 +67,9 @@ class CopyrightStatementLint(cliapp.Application): self.statements.append(m) def get_commit_year(self, filename): + if self.settings['debug-commit-year']: + return self.settings['debug-commit-year'] + output = cliapp.runcmd(['git', 'log', '-n1', filename]) for line in output.splitlines(): diff --git a/yarns/010-tests.yarn b/yarns/010-tests.yarn index 72020c0..65adcfc 100644 --- a/yarns/010-tests.yarn +++ b/yarns/010-tests.yarn @@ -16,7 +16,8 @@ the output of the tool is as expected. Scenarios ========= -Simple case: no copyright file. +No copyright file +----------------- SCENARIO no copyright file GIVEN an empty file FOOBAR @@ -24,6 +25,26 @@ Simple case: no copyright file. THEN exit code is 1 AND stderr contains "FOOBAR.*no copyright statement" +Simple copyright statement +-------------------------- + + SCENARIO simple copyright statement + GIVEN a file FOOBAR containing "Copyright 2014 Foo Bar" + + GIVEN commit year is 2013 + WHEN copyright-statement-lint is run against FOOBAR + THEN exit code is 1 + AND stderr contains "FOOBAR.*2013 not contained" + + GIVEN commit year is 2014 + WHEN copyright-statement-lint is run against FOOBAR + THEN exit code is 0 + + GIVEN commit year is 2015 + WHEN copyright-statement-lint is run against FOOBAR + THEN exit code is 1 + AND stderr contains "FOOBAR.*2015 not contained" + Implementations =============== @@ -36,6 +57,16 @@ in `$DATADIR` using names given by the user. IMPLEMENTS GIVEN an empty file (\S+) touch "$DATADIR/$MATCH_1" + IMPLEMENTS GIVEN a file (\S+) containing "(.*)" + printf '%s\n' "$MATCH_2" > "$DATADIR/$MATCH_1" + +Pretending what the commit year is +---------------------------------- + + IMPLEMENTS GIVEN commit year is (\d+) + printf '[config]\ndebug-commit-year = %s\n' "$MATCH_1" \ + > "$DATADIR/test.conf" + Running and checking the results of `copyright-statement-lint` -------------------------------------------------------------- @@ -48,6 +79,7 @@ tool fails. # code. Don't want to turn set -e off, so we capture other errors. if "$SRCDIR/copyright-statement-lint" \ --no-default-config "$DATADIR/$MATCH_1" \ + --config "$DATADIR/test.conf" \ > "$DATADIR/stdout" \ 2> "$DATADIR/stderr" then @@ -67,4 +99,5 @@ every scenario is expected to check the exit code. Check stdout/stderr. IMPLEMENTS THEN (\S+) contains "(.*)" + cat "$DATADIR/$MATCH_1" grep "$MATCH_2" "$DATADIR/$MATCH_1" -- cgit v1.2.1