<s> from nailgun . objects import deployment_graph <EOL> from nailgun . test import base <EOL> JSON_TASKS = [ <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT:type>' : '<STR_LIT>' <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:*>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:c>' , '<STR_LIT:d>' ] , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> } <EOL> } <EOL> ] <EOL> EXPECTED_TASKS = [ <EOL> { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:c>' , '<STR_LIT:d>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:c>' , '<STR_LIT:d>' ] , <EOL> } , { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> } , { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:*>' , <EOL> '<STR_LIT>' : '<STR_LIT:*>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' <EOL> } , { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:version>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> } <EOL> } <EOL> ] <EOL> class TestDeploymentGraphModel ( <EOL> base . BaseTestCase , <EOL> base . DeploymentTasksTestMixin <EOL> ) : <EOL> def test_deployment_graph_creation ( self ) : <EOL> dg = deployment_graph . DeploymentGraph . create ( <EOL> { '<STR_LIT>' : JSON_TASKS , '<STR_LIT:name>' : '<STR_LIT>' } ) <EOL> serialized = deployment_graph . DeploymentGraph . to_dict ( dg ) <EOL> self . assertEqual ( serialized [ '<STR_LIT:name>' ] , '<STR_LIT>' ) <EOL> self . assertItemsEqual ( serialized [ '<STR_LIT>' ] , EXPECTED_TASKS ) <EOL> def test_deployment_graph_update ( self ) : <EOL> updated_tasks = [ <EOL> { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' <EOL> } <EOL> ] <EOL> expected_updated_tasks = [ <EOL> { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' <EOL> } <EOL> ] <EOL> dg = deployment_graph . DeploymentGraph . create ( <EOL> { '<STR_LIT>' : JSON_TASKS , '<STR_LIT:name>' : '<STR_LIT>' } ) <EOL> deployment_graph . DeploymentGraph . update ( dg , { '<STR_LIT>' : updated_tasks } ) <EOL> serialized = deployment_graph . DeploymentGraph . to_dict ( dg ) <EOL> self . assertEqual ( serialized [ '<STR_LIT:name>' ] , '<STR_LIT>' ) <EOL> self . _compare_tasks ( <EOL> expected_updated_tasks , serialized [ '<STR_LIT>' ] ) <EOL> def test_deployment_graph_delete ( self ) : <EOL> cluster = self . env . create ( ) <EOL> deployment_graph . DeploymentGraph . create_for_model ( <EOL> { '<STR_LIT>' : JSON_TASKS , '<STR_LIT:name>' : '<STR_LIT>' } , cluster , '<STR_LIT>' <EOL> ) <EOL> dg = deployment_graph . DeploymentGraph . get_for_model ( <EOL> cluster , '<STR_LIT>' <EOL> ) <EOL> self . assertIsNotNone ( dg ) <EOL> deployment_graph . DeploymentGraph . delete ( dg ) <EOL> dg = deployment_graph . DeploymentGraph . get_for_model ( <EOL> cluster , '<STR_LIT>' <EOL> ) <EOL> self . assertIsNone ( dg ) <EOL> def test_deployment_graph_create_for_model ( self ) : <EOL> cluster = self . env . create ( ) <EOL> deployment_graph . DeploymentGraph . create_for_model ( <EOL> { '<STR_LIT>' : JSON_TASKS , '<STR_LIT:name>' : '<STR_LIT>' } , cluster , '<STR_LIT>' <EOL> ) <EOL> dg = deployment_graph . DeploymentGraph . get_for_model ( <EOL> cluster , '<STR_LIT>' <EOL> ) <EOL> self . _compare_tasks ( <EOL> EXPECTED_TASKS , deployment_graph . DeploymentGraph . get_tasks ( dg ) <EOL> ) <EOL> def test_create_tasks_with_yaql_condition ( self ) : <EOL> task = { <EOL> '<STR_LIT>' : '<STR_LIT:test>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> } <EOL> graph = deployment_graph . DeploymentGraph . create ( <EOL> { '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : [ task ] } <EOL> ) <EOL> self . _compare_tasks ( <EOL> [ task ] , deployment_graph . DeploymentGraph . get_tasks ( graph ) <EOL> ) </s>
