Beispiel #1
0
    def test_return_a_future_when_called(self):
        "should return a future when used"

        class O (object):
            def foo(self,arg):
                assert arg == "bar"
                return "foobar"

        actor = dramatis.Actor( O() )

        future_name = dramatis.future( actor )

        x = future_name.foo("bar")
            
        assert isinstance(x,dramatis.Future)
Beispiel #2
0
    def test_future_eval(self):
        "should evalute to the right value when used"

        class O ( object):
            def foo(self,arg):
                assert arg == "bar"
                return "foobar"

        actor = dramatis.Actor(O())

        future_name = dramatis.future( actor )

        x = future_name.foo("bar")

        assert isinstance(x,dramatis.Future)
        assert str(x) == "foobar"
Beispiel #3
0
    def test_raise(self):
        "should raise as appropriate"

        actor = dramatis.Actor( object() )

        future_name = dramatis.future( actor )

        x = future_name.bar( "bar" )

        assert isinstance(x,dramatis.Future)

        okay = False
        try:
            str(x)
        except AttributeError: okay = True
        assert okay
Beispiel #4
0
    def test_act_like_object(self):
        "should act like an object ... to the extent possible"

        class O (object):
            def foo(self,bar):
                assert bar == "bar"
                return 12345

        actor = dramatis.Actor(O())

        future_name = dramatis.future( actor )

        x = future_name.foo("bar")
    
        assert isinstance(x,dramatis.Future)

        # This isn't general; ad hoc implemented
        # Perhaps not considered pythonic?

        assert ( x + 0 ) == 12345
        assert ( 0 + x ) == 12345
Beispiel #5
0
    def test_value_if(self):
        "should have a value interface"

        class O (object):
            def foo(self,bar):
                assert bar == "bar"
                return 12345

        actor = dramatis.Actor(O())

        future_name = dramatis.future( actor )

        x = future_name.foo("bar")
    
        assert isinstance(x,dramatis.Future)

        x = dramatis.interface( x ).value

        assert isinstance(x,int)

        assert x == 12345
Beispiel #6
0
 def caller(self,callee):
     self._future = dramatis.future( callee ).callee()
Beispiel #7
0
    def test_future_names(self):
        "should allow future names to be created"

        actor = dramatis.Actor( object() )
        future_name = dramatis.future( actor )