Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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)
Ejemplo n.º 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.")
Ejemplo n.º 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)
Ejemplo n.º 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.")
Ejemplo n.º 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)
Ejemplo n.º 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.')
Ejemplo n.º 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)
Ejemplo n.º 10
0
 def _creationTest(self, garment):
     self.failUnless(
         iimaginary.IClothing.providedBy(iimaginary.IClothing(garment)))
Ejemplo n.º 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))
Ejemplo n.º 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)