def test_logical_or(): model = TempModel() osmo = Osmo(model) osmo.test_end_condition = Or(Length(1), Length(2), Length(3)) osmo.test_suite_end_condition = Or(Length(2), Length(3), Length(4)) osmo.generate() assert model.counter == 2
def test_length_end_condition(steps, tests): model = TempModel() osmo = Osmo(model) osmo.test_end_condition = Length(tests) osmo.test_suite_end_condition = Length(steps) osmo.generate() assert model.counter == steps * tests
def test_step_coverage(): model = TempModel() osmo = Osmo(model) osmo.test_end_condition = StepCoverage(100) osmo.test_suite_end_condition = Length(1) osmo.generate() assert osmo.history.get_step_count( osmo.model.get_step_by_name("step_first")) > 0 assert osmo.history.get_step_count( osmo.model.get_step_by_name("step_second")) > 0
def test_allow_count(): osmo = Osmo(JustFailModel(AssertionError('Failing test_stop_on_failure'))) osmo.test_end_condition = Length(10) osmo.test_suite_end_condition = Length(10) osmo.test_error_strategy = AllowCount(3) osmo.test_suite_error_strategy = AllowCount(3) try: osmo.generate() except: pass assert osmo.history.total_amount_of_steps == 3 + 1
def test_always_ignore(): osmo = Osmo(JustFailModel(AssertionError('Failing test_always_ignore'))) osmo.test_end_condition = Length(100) osmo.test_suite_end_condition = Length(10) osmo.test_error_strategy = AlwaysIgnore() osmo.test_suite_error_strategy = AlwaysIgnore() try: osmo.generate() except: pass assert osmo.history.total_amount_of_steps == 10 * 100
def test_exception_raise_effects(): model = OneStepModel() osmo = Osmo(model) osmo.test_end_condition = Length(8) osmo.test_suite_end_condition = Length(1) try: osmo.generate() except TempException: # Osmo is raisin test exception so need to catch it here pass assert model.index == 5
def test_test_suite_time_end_condition(): time_in_sec = 1 osmo = Osmo(TempModel()) osmo.test_end_condition = Length(1) osmo.test_suite_end_condition = Time(time_in_sec) start_time = time.time() osmo.generate() end_time = time.time() duration = end_time - start_time assert duration < time_in_sec + 0.1 assert duration > time_in_sec - 0.1