def test_properOrphaning(self):
        """
        If two installed items both depend on a third, it should be
        removed as soon as both installed items are removed, but no
        sooner.
        """

        foo = Kitchen(store=self.store)
        e = Toaster(store=self.store)
        dependency.installOn(e, foo)
        ps = self.store.findUnique(PowerStrip)
        bb = self.store.findUnique(Breadbox)
        f = Blender(store=self.store)
        dependency.installOn(f, foo)

        self.assertEquals(list(self.store.query(PowerStrip)), [ps])
        #XXX does ordering matter?
        self.assertEquals(set(dependency.installedDependents(ps, foo)),
                          set([e, f]))
        self.assertEquals(set(dependency.installedRequirements(e, foo)),
                          set([bb, ps]))
        self.assertEquals(list(dependency.installedRequirements(f, foo)), [ps])

        dependency.uninstallFrom(e, foo)
        self.assertEquals(dependency.installedOn(ps), foo)

        dependency.uninstallFrom(f, foo)
        self.assertEquals(dependency.installedOn(ps), None)
Exemple #2
0
    def test_properOrphaning(self):
        """
        If two installed items both depend on a third, it should be
        removed as soon as both installed items are removed, but no
        sooner.
        """

        foo = Kitchen(store=self.store)
        e = Toaster(store=self.store)
        dependency.installOn(e, foo)
        ps = self.store.findUnique(PowerStrip)
        bb = self.store.findUnique(Breadbox)
        f = Blender(store=self.store)
        dependency.installOn(f, foo)

        self.assertEquals(list(self.store.query(PowerStrip)), [ps])
        #XXX does ordering matter?
        self.assertEquals(set(dependency.installedDependents(ps, foo)),
                          set([e, f]))
        self.assertEquals(set(dependency.installedRequirements(e, foo)),
                          set([bb, ps]))
        self.assertEquals(list(dependency.installedRequirements(f, foo)),
                          [ps])

        dependency.uninstallFrom(e, foo)
        self.assertEquals(dependency.installedOn(ps), foo)

        dependency.uninstallFrom(f, foo)
        self.assertEquals(dependency.installedOn(ps), None)
 def test_basicInstall(self):
     """
     If a Toaster gets installed in a Kitchen, make sure that the
     required dependencies get instantiated and installed too.
     """
     foo = Kitchen(store=self.store)
     e = Toaster(store=self.store)
     self.assertEquals(e.powerStrip, None)
     dependency.installOn(e, foo)
     e.toast()
     ps = self.store.findUnique(PowerStrip, default=None)
     bb = self.store.findUnique(Breadbox, default=None)
     self.failIfIdentical(ps, None)
     self.failIfIdentical(bb, None)
     self.assertEquals(e.powerStrip, ps)
     self.assertEquals(ps.voltage, 110)
     self.assertEquals(e.breadFactory, bb)
     self.assertEquals(set(dependency.installedRequirements(e, foo)),
                       set([ps, bb]))
     self.assertEquals(list(dependency.installedDependents(ps, foo)), [e])
Exemple #4
0
 def test_basicInstall(self):
     """
     If a Toaster gets installed in a Kitchen, make sure that the
     required dependencies get instantiated and installed too.
     """
     foo = Kitchen(store=self.store)
     e = Toaster(store=self.store)
     self.assertEquals(e.powerStrip, None)
     dependency.installOn(e, foo)
     e.toast()
     ps = self.store.findUnique(PowerStrip, default=None)
     bb = self.store.findUnique(Breadbox, default=None)
     self.failIfIdentical(ps, None)
     self.failIfIdentical(bb, None)
     self.assertEquals(e.powerStrip, ps)
     self.assertEquals(ps.voltage, 110)
     self.assertEquals(e.breadFactory, bb)
     self.assertEquals(set(dependency.installedRequirements(e, foo)),
                       set([ps, bb]))
     self.assertEquals(list(dependency.installedDependents(ps, foo)), [e])