Exemplo n.º 1
0
    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'], "更新")
Exemplo n.º 2
0
    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)
Exemplo n.º 3
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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)