def test_update_flow(self): """ フローを更新する """ # ユーザの作成 email = '*****@*****.**' models.create_user('ユーザ1', email, '') user = db.session.query(models.Users).filter_by(email=email).first() # プロジェクトの作成 project_name = 'プロジェクト' models.create_project_with_permission(project_name, user.id) projects = models.fetch_readable_projects_by_user_id(user.id) # 取得用フローの作成 flow_name = 'テストフロー' flow_uuid = 'test' models.create_flow_with_permission(flow_name, user, projects[0].id, flow_uuid) update_flow_name = '更新用テストフロー' # 更新用json data = { 'proejctId': projects[0].id, 'label': update_flow_name, 'ports': [[{ "name": "test_i", "type": "frame" }], [{ "name": "test_o", "type": "frame" }]], 'params': [{ "name": "test", "type": "string" }], 'description': "更新" } models.update_flow_by_uuid(flow_uuid, data) flow = models.fetch_flow_by_uuid(flow_uuid) flow_json = json.loads(flow.json) self.assertEqual(flow_json['label'], update_flow_name) self.assertEqual(flow_json['ports'], [[{ "name": "test_i", "type": "frame" }], [{ "name": "test_o", "type": "frame" }]]) self.assertEqual(flow_json['params'], [{ "name": "test", "type": "string" }]) self.assertEqual(flow_json['description'], "更新")
def test_delete_flow(self): """ フローを削除する ユーザ×フローとグループ×フロー(あれば)も削除する """ # ユーザの作成 email = '*****@*****.**' models.create_user('ユーザ1', email, '') user = db.session.query(models.Users).filter_by(email=email).first() # グループの作成 group_name = "テストグループ" models.create_group(group_name) group = db.session.query(models.Groups).all()[0] # ユーザをグループに所属させる models.assign_user_to_group(user.id, group.id) # プロジェクトの作成 project_name = 'プロジェクト' models.create_project_with_permission(project_name, user.id) projects = models.fetch_readable_projects_by_user_id(user.id) # 削除用フローの作成 flow_name = 'テストフロー' flow_uuid = 'test' models.create_flow_with_permission(flow_name, user, projects[0].id, flow_uuid) # 削除前の確認 flow = models.fetch_flow_by_uuid(flow_uuid) self.assertIsNotNone(flow) userpermission_flow = db.session.query( models.UserPermissions_Flow).filter_by(user_id=user.id, flow_uuid=flow_uuid) self.assertEqual(userpermission_flow.count(), 1) grouppermission_flow = db.session.query( models.GroupPermissions_Flow).filter_by(group_id=group.id, flow_uuid=flow_uuid) self.assertEqual(grouppermission_flow.count(), 1) # 削除 models.delete_flow_with_permission_by_uuid(flow_uuid) # 削除後の確認 flow = models.fetch_flow_by_uuid(flow_uuid) self.assertIsNone(flow) userpermission_flow = db.session.query( models.UserPermissions_Flow).filter_by(user_id=user.id, flow_uuid=flow_uuid) self.assertEqual(userpermission_flow.count(), 0) grouppermission_flow = db.session.query( models.GroupPermissions_Flow).filter_by(group_id=group.id, flow_uuid=flow_uuid) self.assertEqual(grouppermission_flow.count(), 0)
def test_create_flow_belong_to_group(self): """ フローの作成のテスト(ユーザはグループに所属している) 必要なデータが作成されているかに対するテスト ・フロー ・ユーザ×フロー ・グループ×フロー """ # ユーザ作成 email = '*****@*****.**' models.create_user('ユーザ1', email, '') user = db.session.query(models.Users).filter_by(email=email).first() # グループの作成 group_name = "テストグループ" models.create_group(group_name) group = db.session.query(models.Groups).all()[0] # プロジェクトの作成 project_name = '開発用' models.create_project_with_permission(project_name, user.id) projects = models.fetch_readable_projects_by_user_id(user.id) # ユーザをグループに所属させる models.assign_user_to_group(user.id, group.id) # フローの作成 flow_name = 'テストフロー' flow_uuid = 'test' models.create_flow_with_permission(flow_name, user, projects[0].id, flow_uuid) # 作成されたかのテスト flow = models.fetch_flow_by_uuid(flow_uuid) self.assertEqual(flow.uuid, flow_uuid) self.assertEqual(json.loads(flow.json)['label'], flow_name) self.assertEqual(flow.project_id, projects[0].id) self.assertEqual(flow.creator_id, user.id) # ユーザ×フローが作成されているかのテスト userpermission_flows = db.session.query( models.UserPermissions_Flow).filter_by(flow_uuid=flow_uuid, user_id=user.id) self.assertEqual(userpermission_flows.count(), 1) self.assertEqual(userpermission_flows[0].user_id, user.id) self.assertEqual(userpermission_flows[0].flow_uuid, flow_uuid) # グループ×フローが作成されているかのテスト grouppermission_flows = db.session.query( models.GroupPermissions_Flow).filter_by(flow_uuid=flow_uuid, group_id=group.id) self.assertEqual(grouppermission_flows.count(), 1) self.assertEqual(grouppermission_flows[0].group_id, group.id) self.assertEqual(grouppermission_flows[0].flow_uuid, flow_uuid)
def test_fetch_flows_2(self): """ フロー一覧を取得するテスト 【プロジェクト毎】 プロジェクト1:テストフロー1、3 プロジェクト2:テストフロー2 """ # ユーザの作成 email = '*****@*****.**' models.create_user('ユーザ1', email, '') user = db.session.query(models.Users).filter_by(email=email).first() # プロジェクト1の作成 project_name = 'プロジェクト1' models.create_project_with_permission(project_name, user.id) # プロジェクト2の作成 project_name2 = 'プロジェクト2' models.create_project_with_permission(project_name2, user.id) projects = models.fetch_readable_projects_by_user_id(user.id) project1 = projects[0] project2 = projects[1] # 取得用フローの作成 flow_name1 = 'テストフロー1' flow_uuid1 = 'test1' flow_name2 = 'テストフロー2' flow_uuid2 = 'test2' flow_name3 = 'テストフロー3' flow_uuid3 = 'test3' models.create_flow_with_permission(flow_name1, user, project1.id, flow_uuid1) models.create_flow_with_permission(flow_name2, user, project2.id, flow_uuid2) models.create_flow_with_permission(flow_name3, user, project1.id, flow_uuid3) flows_of_project1 = models.get_flows_with_permission( project1.id, user.id) flows_of_project2 = models.get_flows_with_permission( project2.id, user.id) print(flows_of_project1) self.assertEqual(len(flows_of_project1), 2) self.assertEqual(len(flows_of_project2), 1) self.assertEqual(flows_of_project1[0]['uuid'], flow_uuid1) self.assertEqual( json.loads(flows_of_project1[0]['json'])['label'], flow_name1) self.assertEqual(flows_of_project1[1]['uuid'], flow_uuid3) self.assertEqual( json.loads(flows_of_project1[1]['json'])['label'], flow_name3) self.assertEqual(flows_of_project2[0]['uuid'], flow_uuid2) self.assertEqual( json.loads(flows_of_project2[0]['json'])['label'], flow_name2)
def test_fetch_flow(self): """ 指定したフローの内容を取得する """ # ユーザの作成 email = '*****@*****.**' models.create_user('ユーザ1', email, '') user = db.session.query(models.Users).filter_by(email=email).first() # グループの作成 group_name = "テストグループ" models.create_group(group_name) group = db.session.query(models.Groups).all()[0] # ユーザをグループに所属させる models.assign_user_to_group(user.id, group.id) # プロジェクトの作成 project_name = 'プロジェクト' models.create_project_with_permission(project_name, user.id) projects = models.fetch_readable_projects_by_user_id(user.id) # フローの作成 flow_name = 'テストフロー' flow_uuid = 'test' models.create_flow_with_permission(flow_name, user, projects[0].id, flow_uuid) # 取得 flow = models.make_dict_from_model( models.fetch_flow_by_uuid(flow_uuid)) flow_json = json.loads(flow['json']) self.assertEqual(flow['uuid'], flow_uuid) self.assertEqual(flow_json['label'], flow_name) self.assertEqual(flow['project_id'], projects[0].id) self.assertEqual(flow['creator_id'], user.id)