Example #1
0
    def test_version_types_attribute_initialization_for_a_new_Project_instance(self):
        """testing if the version_types attribute initializes from the config
        correctly for a new Project instance
        """

        new_proj = Project("TEST_PROJECT")
        new_proj.create()

        # now check if the project has all the version types defined in the
        # config file

        for version_type in conf.version_types:
            version_type_name = version_type["name"]
            vtype_from_proj =\
                VersionType.query().\
                filter_by(name=version_type_name).\
                first()
            
            self.assertTrue(vtype_from_proj is not None)
Example #2
0
    def test_version_types_attribute_initialization_for_a_new_Project_instance(
            self):
        """testing if the version_types attribute initializes from the config
        correctly for a new Project instance
        """

        new_proj = Project("TEST_PROJECT")
        new_proj.create()

        # now check if the project has all the version types defined in the
        # config file

        for version_type in conf.version_types:
            version_type_name = version_type["name"]
            vtype_from_proj =\
                VersionType.query().\
                filter_by(name=version_type_name).\
                first()

            self.assertTrue(vtype_from_proj is not None)
Example #3
0
    def test_deleting_an_asset_will_delete_all_the_related_versions_but_keep_references(
            self):
        """testing if deleting an asset will only delete the version of that
        asset and will keep the referenced versions.
        """
        proj1 = Project('test project 1')
        proj1.save()

        asset1 = Asset(proj1, 'test asset 1')
        asset1.save()

        asset2 = Asset(proj1, 'test asset 2')
        asset2.save()

        asset_vtypes = VersionType.query().filter_by(type_for="Asset").all()

        user = User.query().first()

        vers1 = Version(version_of=asset1,
                        base_name=asset1.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers1.save()

        vers2 = Version(version_of=asset1,
                        base_name=asset1.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers2.save()

        vers3 = Version(version_of=asset1,
                        base_name=asset1.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers3.save()

        vers4 = Version(version_of=asset2,
                        base_name=asset2.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers4.save()

        vers5 = Version(version_of=asset2,
                        base_name=asset2.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers5.save()

        vers6 = Version(version_of=asset2,
                        base_name=asset2.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers6.save()

        # reference vers4, vers5 and vers6 to vers1, vers2 and vers3
        vers1.references.append(vers4)
        vers1.references.append(vers5)
        vers1.references.append(vers6)

        vers2.references.append(vers4)
        vers2.references.append(vers5)
        vers2.references.append(vers6)

        vers3.references.append(vers4)
        vers3.references.append(vers5)
        vers3.references.append(vers6)

        # check if all are in the session
        self.assertIn(proj1, db.session)
        self.assertIn(asset1, db.session)
        self.assertIn(asset2, db.session)
        self.assertIn(vers1, db.session)
        self.assertIn(vers2, db.session)
        self.assertIn(vers3, db.session)
        self.assertIn(vers4, db.session)
        self.assertIn(vers5, db.session)
        self.assertIn(vers6, db.session)

        # there should be 9 entries in the secondary table
        result = db.session\
            .query('referencer_id', 'reference_id')\
            .from_statement("SELECT referencer_id, reference_id "
                            "FROM Version_References").all()
        self.assertEqual(len(result), 9)

        # delete the asset
        db.session.delete(asset1)
        db.session.commit()

        # check if it is not in the session anymore
        self.assertNotIn(asset1, db.session)

        # check if the versions are also deleted
        self.assertNotIn(vers1, db.session)
        self.assertNotIn(vers2, db.session)
        self.assertNotIn(vers3, db.session)

        # check if the others are still there
        self.assertIn(proj1, db.session)
        self.assertIn(asset2, db.session)
        self.assertIn(vers4, db.session)
        self.assertIn(vers5, db.session)
        self.assertIn(vers6, db.session)

        # to be sure check the secondary table
        result = db.session\
            .query('referencer_id', 'reference_id')\
            .from_statement("SELECT referencer_id, reference_id "
                            "FROM Version_References").all()
        self.assertEqual(len(result), 0)
Example #4
0
    def test_deleting_an_asset_will_delete_all_the_related_versions(self):
        """testing if deleting an asset will also delete the related versions
        """
        proj1 = Project('test project 1')
        proj1.save()

        asset1 = Asset(proj1, 'test asset 1')
        asset1.save()

        asset2 = Asset(proj1, 'test asset 2')
        asset2.save()

        asset_vtypes = VersionType.query().filter_by(type_for="Asset").all()

        user = User.query().first()

        vers1 = Version(version_of=asset1,
                        base_name=asset1.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers1.save()

        vers2 = Version(version_of=asset1,
                        base_name=asset1.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers2.save()

        vers3 = Version(version_of=asset1,
                        base_name=asset1.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers3.save()

        vers4 = Version(version_of=asset2,
                        base_name=asset2.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers4.save()

        vers5 = Version(version_of=asset2,
                        base_name=asset2.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers5.save()

        vers6 = Version(version_of=asset2,
                        base_name=asset2.code,
                        type=asset_vtypes[0],
                        created_by=user)
        vers6.save()

        # check if all are in the session
        self.assertIn(proj1, db.session)
        self.assertIn(asset1, db.session)
        self.assertIn(asset2, db.session)
        self.assertIn(vers1, db.session)
        self.assertIn(vers2, db.session)
        self.assertIn(vers3, db.session)
        self.assertIn(vers4, db.session)
        self.assertIn(vers5, db.session)
        self.assertIn(vers6, db.session)

        # delete the asset
        db.session.delete(asset1)
        db.session.commit()

        # check if it is not in the session anymore
        self.assertNotIn(asset1, db.session)

        # check if the versions are also deleted
        self.assertNotIn(vers1, db.session)
        self.assertNotIn(vers2, db.session)
        self.assertNotIn(vers3, db.session)

        # check if the others are still there
        self.assertIn(proj1, db.session)
        self.assertIn(asset2, db.session)
        self.assertIn(vers4, db.session)
        self.assertIn(vers5, db.session)
        self.assertIn(vers6, db.session)
Example #5
0
 def test_deleting_a_shot_will_delete_the_related_versions(self):
     """testing if deleting a shot will delete the related versions
     """
     
     proj1 = Project('test project 1')
     proj1.save()
     
     seq1 = Sequence(proj1, 'test sequence 1')
     seq1.save()
     
     shot1 = Shot(seq1, 1)
     shot1.save()
     
     shot2 = Shot(seq1, 2)
     shot2.save()
     
     user = User.query().first()
     shot_vtypes = VersionType.query().filter_by(type_for="Shot").all()
     
     # versions for shot1
     vers1 = Version(
         shot1,
         base_name=shot1.code,
         type=shot_vtypes[0],
         created_by=user
     )
     vers1.save()
     
     vers2 = Version(
         shot1,
         base_name=shot1.code,
         type=shot_vtypes[0],
         created_by=user
     )
     vers2.save()
     
     vers3 = Version(
         shot1,
         base_name=shot1.code,
         type=shot_vtypes[0],
         created_by=user
     )
     vers3.save()
     
     # versions for shot2
     vers4 = Version(
         shot2,
         base_name=shot2.code,
         type=shot_vtypes[0],
         created_by=user
     )
     vers4.save()
     
     vers5 = Version(
         shot2,
         base_name=shot2.code,
         type=shot_vtypes[0],
         created_by=user
     )
     vers5.save()
     
     vers6 = Version(
         shot2,
         base_name=shot2.code,
         type=shot_vtypes[0],
         created_by=user
     )
     vers6.save()
     
     # test all are in the session
     self.assertIn(proj1, db.session)
     self.assertIn(seq1, db.session)
     self.assertIn(shot1, db.session)
     self.assertIn(shot2, db.session)
     self.assertIn(vers1, db.session)
     self.assertIn(vers2, db.session)
     self.assertIn(vers3, db.session)
     self.assertIn(vers4, db.session)
     self.assertIn(vers5, db.session)
     self.assertIn(vers6, db.session)
     
     # delete shot1
     db.session.delete(shot1)
     db.session.commit()
     
     # check if versions are deleted
     self.assertNotIn(shot1, db.session)
     self.assertNotIn(vers1, db.session)
     self.assertNotIn(vers2, db.session)
     self.assertNotIn(vers3, db.session)
     
     # check if all the others are still there
     self.assertIn(proj1, db.session)
     self.assertIn(seq1, db.session)
     self.assertIn(shot2, db.session)
     self.assertIn(vers4, db.session)
     self.assertIn(vers5, db.session)
     self.assertIn(vers6, db.session)
Example #6
0
 def test_deleting_an_asset_will_delete_all_the_related_versions_but_keep_references(self):
     """testing if deleting an asset will only delete the version of that
     asset and will keep the referenced versions.
     """
     proj1 = Project('test project 1')
     proj1.save()
     
     asset1 = Asset(proj1, 'test asset 1')
     asset1.save()
     
     asset2 = Asset(proj1, 'test asset 2')
     asset2.save()
     
     asset_vtypes = VersionType.query().filter_by(type_for="Asset").all()
     
     user = User.query().first()
     
     vers1 = Version(
         version_of=asset1,
         base_name=asset1.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers1.save()
     
     vers2 = Version(
         version_of=asset1,
         base_name=asset1.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers2.save()
     
     vers3 = Version(
         version_of=asset1,
         base_name=asset1.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers3.save()
 
     vers4 = Version(
         version_of=asset2,
         base_name=asset2.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers4.save()
     
     vers5 = Version(
         version_of=asset2,
         base_name=asset2.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers5.save()
     
     vers6 = Version(
         version_of=asset2,
         base_name=asset2.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers6.save()
     
     # reference vers4, vers5 and vers6 to vers1, vers2 and vers3
     vers1.references.append(vers4)
     vers1.references.append(vers5)
     vers1.references.append(vers6)
     
     vers2.references.append(vers4)
     vers2.references.append(vers5)
     vers2.references.append(vers6)
     
     vers3.references.append(vers4)
     vers3.references.append(vers5)
     vers3.references.append(vers6)
     
     # check if all are in the session
     self.assertIn(proj1, db.session)
     self.assertIn(asset1, db.session)
     self.assertIn(asset2, db.session)
     self.assertIn(vers1, db.session)
     self.assertIn(vers2, db.session)
     self.assertIn(vers3, db.session)
     self.assertIn(vers4, db.session)
     self.assertIn(vers5, db.session)
     self.assertIn(vers6, db.session)
     
     # there should be 9 entries in the secondary table
     result = db.session\
         .query('referencer_id', 'reference_id')\
         .from_statement("SELECT referencer_id, reference_id "
                         "FROM Version_References").all()
     self.assertEqual(len(result), 9)
     
     # delete the asset
     db.session.delete(asset1)
     db.session.commit()
     
     # check if it is not in the session anymore
     self.assertNotIn(asset1, db.session)
     
     # check if the versions are also deleted
     self.assertNotIn(vers1, db.session)
     self.assertNotIn(vers2, db.session)
     self.assertNotIn(vers3, db.session)
     
     # check if the others are still there
     self.assertIn(proj1, db.session)
     self.assertIn(asset2, db.session)
     self.assertIn(vers4, db.session)
     self.assertIn(vers5, db.session)
     self.assertIn(vers6, db.session)
     
     # to be sure check the secondary table
     result = db.session\
         .query('referencer_id', 'reference_id')\
         .from_statement("SELECT referencer_id, reference_id "
                         "FROM Version_References").all()
     self.assertEqual(len(result), 0)
Example #7
0
 def test_deleting_an_asset_will_delete_all_the_related_versions(self):
     """testing if deleting an asset will also delete the related versions
     """
     proj1 = Project('test project 1')
     proj1.save()
     
     asset1 = Asset(proj1, 'test asset 1')
     asset1.save()
     
     asset2 = Asset(proj1, 'test asset 2')
     asset2.save()
     
     asset_vtypes = VersionType.query().filter_by(type_for="Asset").all()
     
     user = User.query().first()
     
     vers1 = Version(
         version_of=asset1,
         base_name=asset1.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers1.save()
     
     vers2 = Version(
         version_of=asset1,
         base_name=asset1.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers2.save()
     
     vers3 = Version(
         version_of=asset1,
         base_name=asset1.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers3.save()
 
     vers4 = Version(
         version_of=asset2,
         base_name=asset2.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers4.save()
     
     vers5 = Version(
         version_of=asset2,
         base_name=asset2.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers5.save()
     
     vers6 = Version(
         version_of=asset2,
         base_name=asset2.code,
         type=asset_vtypes[0],
         created_by=user
     )
     vers6.save()    
     
     # check if all are in the session
     self.assertIn(proj1, db.session)
     self.assertIn(asset1, db.session)
     self.assertIn(asset2, db.session)
     self.assertIn(vers1, db.session)
     self.assertIn(vers2, db.session)
     self.assertIn(vers3, db.session)
     self.assertIn(vers4, db.session)
     self.assertIn(vers5, db.session)
     self.assertIn(vers6, db.session)
     
     # delete the asset
     db.session.delete(asset1)
     db.session.commit()
     
     # check if it is not in the session anymore
     self.assertNotIn(asset1, db.session)
     
     # check if the versions are also deleted
     self.assertNotIn(vers1, db.session)
     self.assertNotIn(vers2, db.session)
     self.assertNotIn(vers3, db.session)
     
     # check if the others are still there
     self.assertIn(proj1, db.session)
     self.assertIn(asset2, db.session)
     self.assertIn(vers4, db.session)
     self.assertIn(vers5, db.session)
     self.assertIn(vers6, db.session)