diff options
author | Lars Wirzenius <liw@liw.fi> | 2014-04-16 18:47:01 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2014-04-16 18:47:01 +0100 |
commit | 64fa1ca7da69a66bd3c1a30c883654272fc78de7 (patch) | |
tree | 9329cadf8ee9ff95b0426055de6c0ca6c84afaad | |
parent | 0b4585915a6c03fc15e8627b0308dbc7d194a2da (diff) | |
download | copyright-statement-lint-64fa1ca7da69a66bd3c1a30c883654272fc78de7.tar.gz |
Add test for simple copyright statement
-rwxr-xr-x | copyright-statement-lint | 9 | ||||
-rw-r--r-- | yarns/010-tests.yarn | 35 |
2 files changed, 43 insertions, 1 deletions
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" |