def test_cli_sync_perm(self, dagbag_mock, mock_cached_app): dags = [ DAG('has_access_control', access_control={'Public': {permissions.ACTION_CAN_READ}}), DAG('no_access_control'), ] collect_dags_from_db_mock = mock.Mock() dagbag = mock.Mock() dagbag.dags = {dag.dag_id: dag for dag in dags} dagbag.collect_dags_from_db = collect_dags_from_db_mock dagbag_mock.return_value = dagbag appbuilder = mock_cached_app.return_value.appbuilder appbuilder.sm = mock.Mock() args = self.parser.parse_args(['sync-perm']) sync_perm_command.sync_perm(args) assert appbuilder.sm.sync_roles.call_count == 1 dagbag_mock.assert_called_once_with(read_dags_from_db=True) collect_dags_from_db_mock.assert_called_once_with() assert 2 == len(appbuilder.sm.sync_perm_for_dag.mock_calls) appbuilder.sm.sync_perm_for_dag.assert_any_call( 'has_access_control', {'Public': {permissions.ACTION_CAN_READ}}) appbuilder.sm.sync_perm_for_dag.assert_any_call( 'no_access_control', None, ) appbuilder.add_permissions.assert_called_once_with(update_perms=True)
def test_cli_sync_perm(self, dagbag_mock, mock_cached_app): self.expect_dagbag_contains([ DAG('has_access_control', access_control={ 'Public': {'can_read'} }), DAG('no_access_control') ], dagbag_mock) appbuilder = mock_cached_app.return_value.appbuilder appbuilder.sm = mock.Mock() args = self.parser.parse_args([ 'sync-perm' ]) sync_perm_command.sync_perm(args) assert appbuilder.sm.sync_roles.call_count == 1 dagbag_mock.assert_called_once_with(store_serialized_dags=True) self.assertEqual(2, len(appbuilder.sm.sync_perm_for_dag.mock_calls)) appbuilder.sm.sync_perm_for_dag.assert_any_call( 'has_access_control', {'Public': {'can_read'}} ) appbuilder.sm.sync_perm_for_dag.assert_any_call( 'no_access_control', None, )
def test_cli_sync_perm(self, dagbag_mock, mock_cached_app): self.expect_dagbag_contains( [ DAG('has_access_control', access_control={'Public': {permissions.ACTION_CAN_READ}}), DAG('no_access_control'), ], dagbag_mock, ) appbuilder = mock_cached_app.return_value.appbuilder appbuilder.sm = mock.Mock() args = self.parser.parse_args(['sync-perm']) sync_perm_command.sync_perm(args) assert appbuilder.sm.sync_roles.call_count == 1 dagbag_mock.assert_called_once_with(read_dags_from_db=True) self.assertEqual(2, len(appbuilder.sm.sync_perm_for_dag.mock_calls)) appbuilder.sm.sync_perm_for_dag.assert_any_call( 'has_access_control', {'Public': {permissions.ACTION_CAN_READ}}) appbuilder.sm.sync_perm_for_dag.assert_any_call( 'no_access_control', None, )
def test_cli_sync_perm_include_dags(self, mock_cached_app): appbuilder = mock_cached_app.return_value.appbuilder appbuilder.sm = mock.Mock() args = self.parser.parse_args(['sync-perm', '--include-dags']) sync_perm_command.sync_perm(args) appbuilder.add_permissions.assert_called_once_with(update_perms=True) appbuilder.sm.sync_roles.assert_called_once_with() appbuilder.sm.create_dag_specific_permissions.assert_called_once_with()
def test_cli_sync_perm(self, dagbag_mock): self.expect_dagbag_contains([ DAG('has_access_control', access_control={'Public': {'can_dag_read'}}), DAG('no_access_control') ], dagbag_mock) self.appbuilder.sm = mock.Mock() args = self.parser.parse_args(['sync_perm']) sync_perm_command.sync_perm(args) assert self.appbuilder.sm.sync_roles.call_count == 1 self.assertEqual(2, len(self.appbuilder.sm.sync_perm_for_dag.mock_calls)) self.appbuilder.sm.sync_perm_for_dag.assert_any_call( 'has_access_control', {'Public': {'can_dag_read'}}) self.appbuilder.sm.sync_perm_for_dag.assert_any_call( 'no_access_control', None, )