# Path: nimoy/specification.py
# class Specification(TestCase, metaclass=DataDrivenSpecification):
# 
#     def __init__(self, methodName='runTest'):
#         super().__init__(methodName)
#         self.thrown_exceptions = []
# 
#     def _feature_block_context(self, block_name):
#         return FeatureBlock(block_name, self.thrown_exceptions)
# 
#     def _compare(self, left, right, comparison_type_name):
#         Compare().compare(left, right, comparison_type_name)
# 
#     def _power_assert(self, expression: Dict):
#         PowerAssertions().assert_and_raise(expression)
# 
#     def _assert_mock(self, number_of_invocations, mock, method, *args):
#         MockAssertions().assert_mock(number_of_invocations, mock, method, *args)
# 
#     def _exception_thrown(self, expected_exception_type):
#         return ExceptionAssertions().assert_exception(self.thrown_exceptions, expected_exception_type)
# 
# Path: specs/nimoy/runner_helper.py
# def run_spec_contents(spec_contents):
#     str_io = StringIO()
#     execution_framework = UnitTestExecutionFramework(stream=str_io)
#     return SpecRunner._run_on_contents(RunnerContext(), execution_framework,
#                                        [(Location('/fake/path.py'), spec_contents)])


from nimoy.specification import Specification
from specs.nimoy.runner_helper import run_spec_contents
            value_of_b = [1, 3, 5]
            expected_value = [2, 12, 30]
            """

        with when:
            result = run_spec_contents(spec_contents)
        with then:
            result.wasSuccessful() == True

    def list_form_multi_variables_with_a_single_value(self):
        with given:
            spec_contents = """from nimoy.specification import Specification
        
class JimbobSpec(Specification):
    
    def test(self):
        with given:
            a = value_of_a
            b = value_of_b
            
        with expect:
            (a * b) == expected_value
        
        with where:
            value_of_a = [2]
            value_of_b = [1]
            expected_value = [2]
            """

        with when:

# Path: nimoy/specification.py
# class Specification(TestCase, metaclass=DataDrivenSpecification):
# 
#     def __init__(self, methodName='runTest'):
#         super().__init__(methodName)
#         self.thrown_exceptions = []
# 
#     def _feature_block_context(self, block_name):
#         return FeatureBlock(block_name, self.thrown_exceptions)
# 
#     def _compare(self, left, right, comparison_type_name):
#         Compare().compare(left, right, comparison_type_name)
# 
#     def _power_assert(self, expression: Dict):
#         PowerAssertions().assert_and_raise(expression)
# 
#     def _assert_mock(self, number_of_invocations, mock, method, *args):
#         MockAssertions().assert_mock(number_of_invocations, mock, method, *args)
# 
#     def _exception_thrown(self, expected_exception_type):
#         return ExceptionAssertions().assert_exception(self.thrown_exceptions, expected_exception_type)
# 
# Path: specs/nimoy/runner_helper.py
# def run_spec_contents(spec_contents):
#     str_io = StringIO()
#     execution_framework = UnitTestExecutionFramework(stream=str_io)
#     return SpecRunner._run_on_contents(RunnerContext(), execution_framework,
#                                        [(Location('/fake/path.py'), spec_contents)])


# Path: specs/nimoy/integration/where_block_spec.py
from nimoy.specification import Specification
from specs.nimoy.runner_helper import run_spec_contents

            value_of_b = [1, 3, 5]
            expected_value = [2, 12, 30]
            """

        with when:
            result = run_spec_contents(spec_contents)
        with then:
            result.wasSuccessful() == True

    def list_form_multi_variables_with_a_single_value(self):
        with given:
            spec_contents = """from nimoy.specification import Specification
        
class JimbobSpec(Specification):
    
    def test(self):
        with given:
            a = value_of_a
            b = value_of_b
            
        with expect:
            (a * b) == expected_value
        
        with where:
            value_of_a = [2]
            value_of_b = [1]
            expected_value = [2]
            """

        with when:

            result = run_spec_contents(spec_contents)