Beispiel #1
0
    def setUp(self):
        """
        Set up a store with a location, a player and an observer.
        """
        self.store = store.Store()
        locContainer = createLocation(
            self.store, u"Test Location", u"Location for testing.")
        self.location = locContainer.thing
        self.world = ImaginaryWorld(store=self.store, origin=self.location)
        self.player = self.world.create(
            u"Test Player", gender=self.genderForTest)
        self.playerContainer = iimaginary.IContainer(self.player)
        self.playerWrapper = player.Player(self.player)

        self.playerWrapper.useColors = False
        locContainer.add(self.player)
        self.transport = StringTransport()
        self.playerWrapper.setProtocol(PlayerProtocol(self.transport))

        self.observer = self.world.create(
            u"Observer Player", gender=language.Gender.FEMALE)
        self.observerWrapper = player.Player(self.observer)
        locContainer.add(self.observer)
        self.otransport = StringTransport()
        self.observerWrapper.setProtocol(PlayerProtocol(self.otransport))

        # Clear the transport, since we don't care about the observer
        # arrival event.
        self.transport.clear()
Beispiel #2
0
    def setUp(self):
        """
        Set up a store with a location, a player and an observer.
        """
        self.store = store.Store()

        self.location = objects.Thing(store=self.store,
                                      name=u"Test Location",
                                      description=u"Location for testing.",
                                      proper=True)

        locContainer = objects.Container.createFor(self.location,
                                                   capacity=1000)

        self.world = ImaginaryWorld(store=self.store, origin=self.location)
        self.player = self.world.create(u"Test Player",
                                        gender=language.Gender.FEMALE)
        self.playerContainer = iimaginary.IContainer(self.player)
        self.playerWrapper = player.Player(self.player)

        self.playerWrapper.useColors = False
        locContainer.add(self.player)
        self.transport = StringTransport()
        self.playerWrapper.setProtocol(PlayerProtocol(self.transport))

        self.observer = self.world.create(u"Observer Player",
                                          gender=language.Gender.FEMALE)
        self.observerWrapper = player.Player(self.observer)
        locContainer.add(self.observer)
        self.otransport = StringTransport()
        self.observerWrapper.setProtocol(PlayerProtocol(self.otransport))

        # Clear the transport, since we don't care about the observer
        # arrival event.
        self.transport.clear()
Beispiel #3
0
 def setUp(self):
     self.store = store.Store()
     self.world = ImaginaryWorld(store=self.store)
     self.daisy = self.world.create(u"daisy", gender=language.Gender.FEMALE)
     self.observer = self.world.create(u"NONDESCRIPT",
                                       gender=language.Gender.MALE)
     self.dukes = garments.createPants(store=self.store,
                                       name=u'pair of Daisy Dukes')
     self.blouse = garments.createShirt(store=self.store,
                                        name=u"blue blouse")
     self.undies = garments.createUnderwear(store=self.store,
                                            name=u"pair of lacy underwear")
Beispiel #4
0
 def setUp(self):
     self.store = store.Store()
     self.world = ImaginaryWorld(store=self.store)
     self.mannequin = self.world.create(u"mannequin",
                                        gender=language.Gender.NEUTER,
                                        proper=False)
     self.observer = self.world.create(u"NONDESCRIPT")
     self.underwear = garments.createPants(store=self.store,
                                           name=u'pair of blue pants')
     self.blouse = garments.createShirt(store=self.store,
                                        name=u"blue blouse")
     self.undies = garments.createUnderwear(
         store=self.store, name=u"pair of polka dot underwear")
Beispiel #5
0
    def __init__(self):
        self.store = store.Store()

        locContainer = createLocation(self.store,
                                      name=u"Test Location",
                                      description=u"Location for testing.")
        self.location = locContainer.thing

        self.world = ImaginaryWorld(store=self.store)
        self.player = self.world.create(u"Test Player",
                                        gender=language.Gender.FEMALE)
        locContainer.add(self.player)
        self.actor = iimaginary.IActor(self.player)
        self.actor.setEphemeralIntelligence(TestIntelligence())
Beispiel #6
0
 def test_create(self):
     """
     L{ImaginaryWorld.create} returns a L{Thing} which is adaptable to
     L{IActor}, L{IContainer}, and L{IClothingWearer} and which is contained
     by the world's C{origin} L{Thing}.
     """
     name = u"foo"
     store = Store()
     world = ImaginaryWorld(store=store)
     character = world.create(name)
     self.assertEqual(character.name, name)
     self.assertTrue(IContainer(world.origin).contains(character))
     self.assertNotIdentical(IActor(character, None), None)
     self.assertNotIdentical(IContainer(character, None), None)
     self.assertNotIdentical(IClothingWearer(character, None), None)
Beispiel #7
0
def makeTextServer(reactor, world=None):
    store = Store()
    if world is not None:
        world = loadWorld(world, store)
        actorThing = findActorThing(store)
    else:
        world = ImaginaryWorld(store=store)
        actorThing = world.create("player")

    tsb = ConsoleTextServer(Player(actorThing), sys.__stdin__.fileno())

    def winchAccess(signum, frame):
        reactor.callFromThread(tsb.terminalSize, *getTerminalSize()[::-1])

    signal.signal(signal.SIGWINCH, winchAccess)
    return tsb
Beispiel #8
0
 def setUp(self):
     """
     Create a store and an Imaginary world and populate it with a number
     of players, one of which is equipped to record the events it
     receives.
     """
     self.store = store.Store()
     self.world = ImaginaryWorld(store=self.store)
     self.others = []
     for i in xrange(5):
         self.others.append(self.world.create(u"player-%d" % (i, )))
     self.player = self.world.create(u"testplayer")
     self.actor = iimaginary.IActor(self.player)
     self.intelligence = commandutils.MockEphemeralIntelligence()
     self.actor.setEphemeralIntelligence(self.intelligence)
     self.world.loggedIn(self.player)
Beispiel #9
0
    def setUp(self):
        self.store = store.Store()

        self.location = objects.Thing(
            store=self.store,
            name=u"Test Location",
            description=u"Location for testing.",
            proper=True)

        locContainer = objects.Container.createFor(
            self.location, capacity=1000)

        self.world = ImaginaryWorld(store=self.store)
        self.player = self.world.create(u"Test Player", gender=language.Gender.FEMALE)
        locContainer.add(self.player)
        self.actor = iimaginary.IActor(self.player)
        self.actor.setEphemeralIntelligence(TestIntelligence())
Beispiel #10
0
def world(store):
    def room(name):
        it = Thing(store=store, name=name)
        Container.createFor(it, capacity=1000)
        return it

    world = ImaginaryWorld(store=store, origin=room("The Beginning"))
    protagonist = world.create("An Example Player")
    shirt = createShirt(store=store, name="shirt", location=world.origin)
    pants = createPants(store=store, name="pants", location=world.origin)
    middle = room("The Middle")
    wearer = IClothingWearer(protagonist)
    wearer.putOn(IClothing(shirt))
    wearer.putOn(IClothing(pants))
    Exit.link(world.origin, middle, "north")

    squeakerThing = Thing(name="squeaker", location=middle, store=store)
    Squeaker.createFor(squeakerThing)
    return world
Beispiel #11
0
    def test_creationEvent(self):
        """
        When a new L{Thing} is created via L{ImaginaryWorld.create}, its
        addition to L{ImaginaryWorld.origin} is broadcast to that location.
        """
        store = Store()
        world = ImaginaryWorld(store=store)
        observer = world.create(u"observer")

        # There really needs to be a way to get into the event dispatch
        # system.  It's so hard right now that I'm not even going to try,
        # instead I'll look at some strings that get written to a transport.
        observingPlayer = Player(observer)
        transport = StringTransport()
        observingPlayer.setProtocol(PlayerProtocol(transport))

        # Make another thing for the observer to watch the creation of.
        world.create(u"foo")

        self.assertEquals(transport.value(), "Foo arrives.\n")