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