def test_JelasticEnvironment_stop_via_status(): """ JelasticEnvironment can be started if started, by setting the status to STOPPED, and saving """ jelapic()._ = Mock( return_value={ "env": get_standard_env( status=JelasticEnvironment.Status.STOPPED.value ), # After the stop, the API returns that it was stopped "envGroups": [], }) jelenv = JelasticEnvironment() jelenv.update_from_env_dict(get_standard_env()) jelenv.status = JelasticEnvironment.Status.STOPPED jelenv.save() assert jelenv.status == JelasticEnvironment.Status.STOPPED jelapic()._.assert_called() # A second save should not call the API jelapic()._.reset_mock() jelenv.save() jelapic()._.assert_not_called()
def test_JelasticEnvironment_sleep_via_status(): """ JelasticEnvironment can be put to sleep if running, by setting the status to SLEEPING, and saving """ jelapic()._ = Mock( return_value={ "env": get_standard_env( status=JelasticEnvironment.Status.SLEEPING.value ), # After the sleep, the API returns that it was sleeping "envGroups": [], }) # Test these two starting statuses for status in [ JelasticEnvironment.Status.STOPPED, JelasticEnvironment.Status.SLEEPING, ]: jelapic()._.reset_mock() jelenv = JelasticEnvironment() jelenv.update_from_env_dict(get_standard_env(status.value)) jelenv.status = JelasticEnvironment.Status.RUNNING jelenv.save() assert jelenv.status == JelasticEnvironment.Status.SLEEPING jelapic()._.assert_called() # A second save should not call the API jelapic()._.reset_mock() jelenv.save() jelapic()._.assert_not_called()
def test_JelasticEnvironment_unsupported_statuses(): """ JelasticEnvironment cannot (yet) be put to certain states """ jelenv = JelasticEnvironment() jelenv.update_from_env_dict(get_standard_env()) JelStatus = JelasticEnvironment.Status for status in [ JelStatus.UNKNOWN, JelStatus.LAUNCHING, JelStatus.SUSPENDED, JelStatus.CREATING, JelStatus.CLONING, JelStatus.UPDATING, ]: jelenv.status = status with pytest.raises(JelasticObjectException): jelenv.save()