Пример #1
0
    def testTakeOffUnderwearBeforePants(self):
        # TODO - underwear removal skill
        wearer = iimaginary.IClothingWearer(self.mannequin)
        wearer.putOn(iimaginary.IClothing(self.undies))
        wearer.putOn(iimaginary.IClothing(self.underwear))

        self.assertRaises(garments.InaccessibleGarment, wearer.takeOff,
                          iimaginary.IClothing(self.undies))
Пример #2
0
    def testPersonWearsPantsAndFailsAtPuttingOnUnderpants(self):
        description = self.daisy.visualize()

        iimaginary.IClothingWearer(self.daisy).putOn(
            iimaginary.IClothing(self.dukes))
        self.assertRaises(garments.TooBulky,
                          iimaginary.IClothingWearer(self.daisy).putOn,
                          iimaginary.IClothing(self.undies))
Пример #3
0
 def testPersonRemovesPants(self):
     iimaginary.IClothingWearer(self.daisy).putOn(
         iimaginary.IClothing(self.dukes))
     iimaginary.IClothingWearer(self.daisy).takeOff(
         iimaginary.IClothing(self.dukes))
     description = self.daisy.visualize()
     self.assertEquals(
         self.flatten(description.plaintext(self.observer)), u'[ daisy ]\n'
         u'daisy is great.\n'
         u'She is naked.\n'
         u'a pair of Daisy Dukes')
     self.assertIdentical(self.dukes.location, self.daisy)
Пример #4
0
    def testPersonWearsUnderpantsAndPants(self):
        description = self.daisy.visualize()

        iimaginary.IClothingWearer(self.daisy).putOn(
            iimaginary.IClothing(self.undies))
        iimaginary.IClothingWearer(self.daisy).putOn(
            iimaginary.IClothing(self.dukes))

        self.assertEquals(
            self.flatten(description.plaintext(self.observer)), u"[ daisy ]\n"
            u"daisy is great.\n"
            u"She is wearing a pair of Daisy Dukes.")
Пример #5
0
 def testPersonRemovesPants(self):
     iimaginary.IClothingWearer(self.mannequin).putOn(
         iimaginary.IClothing(self.underwear))
     iimaginary.IClothingWearer(self.mannequin).takeOff(
         iimaginary.IClothing(self.underwear))
     description = self.visualizeMannequin()
     self.assertEquals(
         self.flatten(description.plaintext(self.observer)),
         u'[ mannequin ]\n'
         u'the mannequin is great.\n'
         u'It is naked.\n'
         u'It is carrying a pair of blue pants.')
     self.assertIdentical(self.underwear.location, self.mannequin)
Пример #6
0
    def testPersonWearsUnderpantsAndPants(self):
        iimaginary.IClothingWearer(self.mannequin).putOn(
            iimaginary.IClothing(self.undies))
        iimaginary.IClothingWearer(self.mannequin).putOn(
            iimaginary.IClothing(self.underwear))

        description = self.visualizeMannequin()

        self.assertEquals(
            self.flatten(description.plaintext(self.observer)),
            u"[ mannequin ]\n"
            u"the mannequin is great.\n"
            u"It is wearing a pair of blue pants.")
Пример #7
0
    def test_cantDropSomethingYouAreWearing(self):
        """
        If you're wearing an article of clothing, you should not be able to
        drop it until you first take it off.  After taking it off, however, you
        can move it around just fine.
        """
        wearer = iimaginary.IClothingWearer(self.mannequin)
        wearer.putOn(iimaginary.IClothing(self.undies))
        af = self.assertRaises(ActionFailure, self.undies.moveTo,
                               self.mannequin.location)
        self.assertEquals(
            u''.join(af.event.plaintext(self.mannequin)),
            u"You can't move the pair of polka dot underwear "
            u"without removing it first.\n")

        wearer.takeOff(iimaginary.IClothing(self.undies))
        self.undies.moveTo(self.mannequin.location)
        self.assertEquals(self.mannequin.location, self.undies.location)
Пример #8
0
    def testPersonWearsPants(self):
        iimaginary.IClothingWearer(self.daisy).putOn(
            iimaginary.IClothing(self.dukes))

        description = self.daisy.visualize()
        self.assertEquals(
            self.flatten(description.plaintext(self.observer)), u'[ daisy ]\n'
            u'daisy is great.\n'
            u'She is wearing a pair of Daisy Dukes.')
Пример #9
0
 def annotationsFor(self, link, idea):
     """
     Tell the containment system to disregard containment relationships for
     which I will generate a link.
     """
     if list(link.of(iimaginary.IContainmentRelationship)):
         if link.source.delegate is self.thing:
             clothing = iimaginary.IClothing(link.target.delegate, None)
             if clothing is not None:
                 if clothing.wearer is self:
                     yield _WornBy(clothing.wearer)
Пример #10
0
 def _creationTest(self, garment):
     self.failUnless(
         iimaginary.IClothing.providedBy(iimaginary.IClothing(garment)))
Пример #11
0
 def testPersonWearsPantsAndFailsAtPuttingOnUnderpants(self):
     iimaginary.IClothingWearer(self.mannequin).putOn(
         iimaginary.IClothing(self.underwear))
     self.assertRaises(garments.TooBulky,
                       iimaginary.IClothingWearer(self.mannequin).putOn,
                       iimaginary.IClothing(self.undies))
Пример #12
0
 def testWornClothingIsFindable(self):
     iimaginary.IClothingWearer(self.daisy).putOn(
         iimaginary.IClothing(self.dukes))
     dukes = list(self.daisy.findProviders(iimaginary.IClothing, 0))
     self.assertEquals(len(dukes), 1)
     self.assertIdentical(dukes[0].thing, self.dukes)