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)
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)
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)
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)
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)