Esempio n. 1
0
 def test_code_attribute_is_calculated_from_the_number_argument(self):
     """testing if the code attribute is calculated from the number
     argument
     """
     
     self.kwargs["number"] = 10
     new_shot1 = Shot(**self.kwargs)
     self.assertEqual(new_shot1.code, "SH010")
     
     self.kwargs["number"] = "10A"
     new_shot1 = Shot(**self.kwargs)
     self.assertEqual(new_shot1.code, "SH010A")
     
     self.kwargs["number"] = "A143AN-04-D"
     new_shot1 = Shot(**self.kwargs)
     self.assertEqual(new_shot1.code, "SHA143AN-04-D")
     
     self.kwargs["number"] = "A143AN-04-DB"
     self.test_proj.shot_number_prefix = ""
     new_shot1 = Shot(**self.kwargs)
     self.assertEqual(new_shot1.code, "A143AN-04-DB")
     
     self.kwargs['number'] = '304_sb_0403_0040'
     self.test_proj.shot_number_prefix = ""
     new_shot1 = Shot(**self.kwargs)
     self.assertEqual(new_shot1.code, '304_SB_0403_0040')
Esempio n. 2
0
 def test_number_is_already_defined_in_the_sequence_for_an_already_created_one(self):
     """testing if a ValueError will be raised when the number is already
     defined for a Shot in the same Sequence instance
     """
     self.kwargs["number"] = 101
     new_shot1 = Shot(**self.kwargs)
     new_shot1.save()
     
     self.assertRaises(ValueError, Shot, **self.kwargs)
Esempio n. 3
0
 def test_number_argument_is_string_or_integer(self):
     """testing if both strings and integers are ok to pass to the number
     argument
     """
     self.kwargs["number"] = 10
     new_shot1 = Shot(**self.kwargs)
     self.assertEqual(new_shot1.number, "10")
     
     self.kwargs["number"] = "11A"
     new_shot2 = Shot(**self.kwargs)
     self.assertEqual(new_shot2.number, "11A")
Esempio n. 4
0
 def test_duration_attribute_is_updated_correctly(self):
     """testing if the duration attribute is updated correctly with the
     changing values of start_frame and end_frame values
     """
     self.kwargs['number'] = '1duration'
     new_shot = Shot(**self.kwargs)
     self.assertEqual(new_shot.start_frame, 1)
     self.assertEqual(new_shot.end_frame, 100)
     new_shot.start_frame = 10
     self.assertEqual(new_shot.duration, 91)
     
     new_shot.end_frame = 110
     self.assertEqual(new_shot.duration, 101)
Esempio n. 5
0
 def test_deleting_a_shot_will_not_delete_the_other_shots_in_the_related_sequence(self):
     """testing if deleting a shot will not delete the other shots in the
     sequence
     """
     proj1 = Project('test project 1')
     proj1.save()
     
     seq1 = Sequence(proj1, 'test seq 1')
     seq1.save()
     
     shot1 = Shot(seq1, 1)
     shot1.save()
     
     shot2 = Shot(seq1, 2)
     shot2.save()
     
     # check if they are in the session
     self.assertIn(proj1, db.session)
     self.assertIn(seq1, db.session)
     self.assertIn(shot1, db.session)
     self.assertIn(shot2, db.session)
     
     # delete the shot
     db.session.delete(shot1)
     db.session.commit()
     
     self.assertNotIn(shot1, db.session)
     self.assertIn(shot2, db.session)
Esempio n. 6
0
 def test_end_frame_argument_is_None(self):
     """testing if the end_frame attribute will be set to the default
     value when the end_frame argument is skipped
     """
     self.kwargs['number'] = '1a'
     self.kwargs["end_frame"] = None
     new_shot = Shot(**self.kwargs)
     self.assertEqual(new_shot.end_frame, 1)
Esempio n. 7
0
 def test_start_frame_argument_is_skipped(self):
     """testing if the start_frame attribute will be set to the default
     value when the start_frame argument is skipped
     """
     self.kwargs['number'] = '1a'
     self.kwargs.pop("start_frame")
     new_shot = Shot(**self.kwargs)
     self.assertEqual(new_shot.start_frame, 1)
Esempio n. 8
0
 def test_number_argument_formatted_correctly(self):
     """testing if the number attribute is formatted correctly when the class
     is initialized
     """
     for test_value in self._number_test_values:
         self.kwargs["number"] = test_value[0]
         new_shot = Shot(**self.kwargs)
         self.assertEqual(test_value[1], new_shot.number)
Esempio n. 9
0
 def test_inequality_of_shots(self):
     """testing if the equality operator is working properly
     """
     proj1 = Project("TEST_EQ_PROJ")
     proj1.create()
     
     seq1 = Sequence(proj1, "TEST_SEQ1")
     seq2 = Sequence(proj1, "TEST_SEQ2")
     
     shot1 = Shot(seq1, 1)
     shot2 = Shot(seq1, 2)
     shot3 = Shot(seq2, 1)
     
     #shot1a = Shot(seq1, 1)
     shot1a = seq1.shots[0]
     
     self.assertFalse(shot1!=shot1a)
     self.assertTrue(shot1!=shot2)
     self.assertTrue(shot1a!=shot3)
Esempio n. 10
0
 def test_number_is_already_defined_in_the_sequence(self):
     """testing if a ValueError will be raised when the shot number is
     already defined in the given Sequence
     """
     self.kwargs["number"] = 101
     new_shot1 = Shot(**self.kwargs)
     self.assertRaises(
         ValueError,
         Shot,
         **self.kwargs
     )
Esempio n. 11
0
 def setUp(self):
     """setup the test settings with environment variables
     """
     # -----------------------------------------------------------------
     # start of the setUp
     conf.database_url = "sqlite://"
     
     # create the environment variable and point it to a temp directory
     self.temp_config_folder = tempfile.mkdtemp()
     self.temp_projects_folder = tempfile.mkdtemp()
     
     os.environ["OYPROJECTMANAGER_PATH"] = self.temp_config_folder
     os.environ[conf.repository_env_key] = self.temp_projects_folder
     
     self.test_proj = Project("TEST_PROJ1")
     self.test_proj.create()
     
     self.test_seq = Sequence(self.test_proj, "TEST_SEQ")
     self.test_seq.save()
     self.test_seq.create()
     
     self.kwargs = {
         "sequence": self.test_seq,
         "number": 1,
         "start_frame": 1,
         "end_frame": 100,
         "description": "Test shot"
     }
     
     self.test_shot = Shot(**self.kwargs)
     
     self._number_test_values = [
         (23, "23"),
         ("24", "24"),
         ("324ASF", "324ASF"),
         ("AD43", "AD43"),
         ("AS43A", "AS43A"),
         ("afasfas fasf    asdf67", "AFASFAS_FASF_ASDF67"),
         ("45a", "45A"),
         ("45acafs","45ACAFS"),
         ("45'^+'^+b", "45B"),
         ("45asf78wr", "45ASF78WR"),
         ("'^+'afsd2342'^+'asdFGH", "AFSD2342ASDFGH"),
         ("46B-3-B", "46B-3-B"),
         ("XB58P-4-C", "XB58P-4-C"),
         ("A143AN-04-D", "A143AN-04-D"),
         ("xb58q-2-d", "XB58Q-2-D"),
         ("underscores_are_allowed", "UNDERSCORES_ARE_ALLOWED"),
         ("304_sb_0403_0040", "304_SB_0403_0040"),
         #("0001", "1"),
     ]
Esempio n. 12
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)
Esempio n. 13
0
 def test_shot_is_CRUD_properly_in_the_database(self):
     """testing if the shot instance is created properly in the database
     """
     new_proj = Project("TEST_PROJ_FOR_CRUD")
     new_proj.create()
     
     new_seq = Sequence(new_proj, "TEST_SEQ103")
     new_seq.save()
     
     new_shot = Shot(new_seq, '1a')
     new_shot.save()
     
     # now query the database if it is created and read correctly
     self.assertEqual(
         new_shot,
         Shot.query()
             .filter(Shot.number==new_shot.number)
             .first()
     )
     
     # now update it
     new_shot.start_frame = 100
     new_shot.end_frame = 200
     new_shot.save()
     
     self.assertEqual(
         new_shot.start_frame,
         Shot.query()
             .filter(Shot.number==new_shot.number)
             .first()
             .start_frame
     )
     self.assertEqual(
         new_shot.end_frame,
         Shot.query()
             .filter(Shot.number==new_shot.number)
             .first()
             .end_frame
     )
     
     # now delete it
     db.session.delete(new_shot)
     db.session.commit()
     
     self.assertEqual(len(Shot.query().all()), 1)
Esempio n. 14
0
 def test_deleting_a_project_will_delete_the_related_shots(self):
     """testing if deleting a project will also delete the related shots
     """
     proj1 = Project("Test Project 1")
     proj1.save()
     
     proj2 = Project("Test Project 2")
     proj2.save()
     
     seq1 = Sequence(proj1, "Sequence 1")
     seq1.save()
     
     seq2 = Sequence(proj2, "Sequence 2")
     seq2.save()
     
     shot1 = Shot(seq1, 1)
     shot1.save()
     
     shot2 = Shot(seq1, 2)
     shot2.save()
     
     shot3 = Shot(seq2, 1)
     shot3.save()
     
     shot4 = Shot(seq2, 2)
     shot4.save()
     
     # check all are in session
     self.assertIn(proj1, db.session)
     self.assertIn(proj2, db.session)
     self.assertIn(seq1, db.session)
     self.assertIn(seq2, db.session)
     self.assertIn(shot1, db.session)
     self.assertIn(shot2, db.session)
     self.assertIn(shot3, db.session)
     self.assertIn(shot4, db.session)
     
     # delete the project
     db.session.delete(proj1)
     db.session.commit()
     
     self.assertNotIn(proj1, db.session)
     self.assertNotIn(seq1, db.session)
     self.assertNotIn(shot1, db.session)
     self.assertNotIn(shot2, db.session)
     
     self.assertIn(proj2, db.session)
     self.assertIn(seq2, db.session)
     self.assertIn(shot3, db.session)
     self.assertIn(shot4, db.session)
Esempio n. 15
0
    def test_deleting_a_project_will_delete_the_related_shots(self):
        """testing if deleting a project will also delete the related shots
        """
        proj1 = Project("Test Project 1")
        proj1.save()

        proj2 = Project("Test Project 2")
        proj2.save()

        seq1 = Sequence(proj1, "Sequence 1")
        seq1.save()

        seq2 = Sequence(proj2, "Sequence 2")
        seq2.save()

        shot1 = Shot(seq1, 1)
        shot1.save()

        shot2 = Shot(seq1, 2)
        shot2.save()

        shot3 = Shot(seq2, 1)
        shot3.save()

        shot4 = Shot(seq2, 2)
        shot4.save()

        # check all are in session
        self.assertIn(proj1, db.session)
        self.assertIn(proj2, db.session)
        self.assertIn(seq1, db.session)
        self.assertIn(seq2, db.session)
        self.assertIn(shot1, db.session)
        self.assertIn(shot2, db.session)
        self.assertIn(shot3, db.session)
        self.assertIn(shot4, db.session)

        # delete the project
        db.session.delete(proj1)
        db.session.commit()

        self.assertNotIn(proj1, db.session)
        self.assertNotIn(seq1, db.session)
        self.assertNotIn(shot1, db.session)
        self.assertNotIn(shot2, db.session)

        self.assertIn(proj2, db.session)
        self.assertIn(seq2, db.session)
        self.assertIn(shot3, db.session)
        self.assertIn(shot4, db.session)