From 7cba7b30e615e627984047b00cdd0de0b201efb5 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 25 Aug 2013 13:54:49 +0100 Subject: Check there are scenarios --- NEWS | 3 +++ yarn | 6 ++++++ yarn.tests/no-scenarios.exit | 1 + yarn.tests/no-scenarios.script | 9 +++++++++ yarn.tests/no-scenarios.stderr | 1 + 5 files changed, 20 insertions(+) create mode 100644 yarn.tests/no-scenarios.exit create mode 100755 yarn.tests/no-scenarios.script create mode 100644 yarn.tests/no-scenarios.stderr diff --git a/NEWS b/NEWS index 67d870f..a57a186 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,9 @@ Bug fixes: * Yarn now complains if a scenario has no THEN steps. Suggested by Richard Maw. +* Yarn now gives an error if there are no scenarios. Suggested by + Daniel Silverstone and others. + * Yarn now checks for duplicate scenario names. Version 0.9, released 2013-07-23 diff --git a/yarn b/yarn index 3e9be0d..a84fcd4 100755 --- a/yarn +++ b/yarn @@ -109,6 +109,7 @@ class YarnRunner(cliapp.Application): 'step %Index(step,steps): %String(step_name)') scenarios, implementations = self.parse_scenarios(args) + self.check_there_are_scenarios(scenarios) self.check_for_duplicate_scenario_names(scenarios) self.check_for_thens(scenarios) self.connect_implementations(scenarios, implementations) @@ -160,6 +161,11 @@ class YarnRunner(cliapp.Application): return block_parser.scenarios, block_parser.implementations + def check_there_are_scenarios(self, scenarios): + if not scenarios: + raise cliapp.AppException( + 'There are no scenarios; must have at least one.') + def check_for_duplicate_scenario_names(self, scenarios): counts = collections.Counter() for s in scenarios: diff --git a/yarn.tests/no-scenarios.exit b/yarn.tests/no-scenarios.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/yarn.tests/no-scenarios.exit @@ -0,0 +1 @@ +1 diff --git a/yarn.tests/no-scenarios.script b/yarn.tests/no-scenarios.script new file mode 100755 index 0000000..ffd8e96 --- /dev/null +++ b/yarn.tests/no-scenarios.script @@ -0,0 +1,9 @@ +#!/bin/sh + +set -eu + + +cat < "$DATADIR/test.yarn" +EOF + +./run-yarn "$DATADIR/test.yarn" diff --git a/yarn.tests/no-scenarios.stderr b/yarn.tests/no-scenarios.stderr new file mode 100644 index 0000000..66311c1 --- /dev/null +++ b/yarn.tests/no-scenarios.stderr @@ -0,0 +1 @@ +ERROR: There are no scenarios; must have at least one. -- cgit v1.2.1