def testGetProductionActionWhenOrderOnlyDependencyMustBeProduced( self ): AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp1", "file1" ) ).returns( False ) self.strongDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.automaticDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.artifact.getOldestFile( [], [] ).returns( 1200001 ) self.strongDependency.getNewestFile( [], [] ).returns( 1200000 ) self.automaticDependency.getNewestFile( [], [] ).returns( 1200000 ) self.orderOnlyDependency.computeIfMustBeProduced( [], [], False ).returns( True ) self.orderOnlyDependency.computeProductionAction( [], [], False, DontCheck() ).returns( self.orderOnlyDependencyProductionAction ) self.orderOnlyDependencyProductionAction.computePreview().returns( "create orderOnlyDependency" ) self.m.startTest() action = self.artifact.getProductionAction() model = Graph( "action" ) model.nodeAttr[ "shape" ] = "box" n0 = Node( "" ) n1 = Node( "create orderOnlyDependency" ) model.add( n0 ) model.add( n1 ) model.add( Link( n0, n1 ) ) self.assertTrue( actionHasGraph( action, model ) )
def testGetProductionActionWhenAutomaticDependencyMustBeProduced( self ): AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp1", "file1" ) ).returns( False ) self.strongDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.automaticDependency.computeIfMustBeProduced( [], [], False ).returns( True ) self.artifact.doGetProductionAction().returns( self.productionAction ) self.orderOnlyDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.automaticDependency.computeProductionAction( [], [], False, DontCheck() ).returns( self.automaticDependencyProductionAction ) self.productionAction.computePreview().returns( "create file1" ) self.automaticDependencyProductionAction.computePreview().returns( "create automaticDependency" ) self.m.startTest() action = self.artifact.getProductionAction() model = Graph( "action" ) model.nodeAttr[ "shape" ] = "box" n0 = Node( "create file1" ) n2 = Node( "create automaticDependency" ) n3 = Node( "mkdir -p tmp1" ) n4 = Node( "rm -f " + os.path.join( "tmp1", "file1" ) ) model.add( n0 ) model.add( n2 ) model.add( n3 ) model.add( n4 ) model.add( Link( n0, n2 ) ) model.add( Link( n0, n3 ) ) model.add( Link( n0, n4 ) ) self.assertTrue( actionHasGraph( action, model ) )
def testGetProductionActionWithNoReasonToProduce( self ): AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp1", "file1" ) ).returns( False ) self.strongDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.automaticDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.artifact.getOldestFile( [], [] ).returns( 1200001 ) self.strongDependency.getNewestFile( [], [] ).returns( 1200000 ) self.automaticDependency.getNewestFile( [], [] ).returns( 1200000 ) self.orderOnlyDependency.computeIfMustBeProduced( [], [], False ).returns( False ) self.m.startTest() action = self.artifact.getProductionAction() model = Graph( "action" ) model.nodeAttr[ "shape" ] = "box" model.add( Node( "" ) ) self.assertTrue( actionHasGraph( action, model ) )
def recordGetProductionAction( self ): AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp1", "file1" ) ).returns( True ) self.atomicArtifact1.doGetProductionAction().returns( self.fileProductionAction1 ) AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp2", "file2" ) ).returns( True ) self.atomicArtifact2.doGetProductionAction().returns( self.fileProductionAction2 )
def recordGetProductionAction( self ): AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp1", "file1" ) ).returns( False ) AtomicArtifact._AtomicArtifact__fileIsMissing( os.path.join( "tmp2", "file2" ) ).returns( True ) self.artifact.doGetProductionAction().returns( self.productionAction )