def setup(self): self.env = Environment(None, None) # we won't create files self.env.cache = MemoryCache(capacity=100) self.bundle = Bundle(output="target") self.updater = BundleDefUpdater()
class TestBundleDefBaseUpdater: """Test the updater which caches bundle definitions to determine changes. """ def setup(self): self.env = Environment(None, None) # we won't create files self.env.cache = MemoryCache(capacity=100) self.bundle = Bundle(output="target") self.updater = BundleDefUpdater() def test_no_rebuild_required(self): # Fake an initial build self.updater.build_done(self.bundle, self.env) # without any changes, no rebuild is required assert self.updater.needs_rebuild(self.bundle, self.env) == False # Build of another bundle won't change that, i.e. we use the # correct caching key for each bundle. bundle2 = Bundle(output="target2") self.updater.build_done(bundle2, self.env) assert self.updater.needs_rebuild(self.bundle, self.env) == False def test_filters_changed(self): self.updater.build_done(self.bundle, self.env) self.bundle.filters += ('jsmin',) assert self.updater.needs_rebuild(self.bundle, self.env) == True def test_contents_changed(self): self.updater.build_done(self.bundle, self.env) self.bundle.contents += ('foo.css',) assert self.updater.needs_rebuild(self.bundle, self.env) == True def test_debug_changed(self): self.updater.build_done(self.bundle, self.env) self.bundle.debug = not self.bundle.debug assert self.updater.needs_rebuild(self.bundle, self.env) == True def test_depends_changed(self): # Changing the depends attribute of a bundle will NOT cause # a rebuild. This is a close call, and might just as well work # differently. I decided that the purity of the Bundle.__hash__ # implementation in not including anything that isn't affecting # to the final output bytes was more important. If the user # is changing depends than after the next rebuild that change # will be effective anyway. self.updater.build_done(self.bundle, self.env) self.bundle.depends += ['foo'] assert self.updater.needs_rebuild(self.bundle, self.env) == False
class TestBundleDefBaseUpdater(object): """Test the updater which caches bundle definitions to determine changes. """ def setup(self): self.env = Environment(None, None) # we won't create files self.env.cache = MemoryCache(capacity=100) self.bundle = Bundle(output="target") self.updater = BundleDefUpdater() def test_no_rebuild_required(self): # Fake an initial build self.updater.build_done(self.bundle, self.env) # without any changes, no rebuild is required assert self.updater.needs_rebuild(self.bundle, self.env) == False # Build of another bundle won't change that, i.e. we use the # correct caching key for each bundle. bundle2 = Bundle(output="target2") self.updater.build_done(bundle2, self.env) assert self.updater.needs_rebuild(self.bundle, self.env) == False def test_filters_changed(self): self.updater.build_done(self.bundle, self.env) self.bundle.filters += ('jsmin', ) assert self.updater.needs_rebuild(self.bundle, self.env) == True def test_contents_changed(self): self.updater.build_done(self.bundle, self.env) self.bundle.contents += ('foo.css', ) assert self.updater.needs_rebuild(self.bundle, self.env) == True def test_debug_changed(self): self.updater.build_done(self.bundle, self.env) self.bundle.debug = not self.bundle.debug assert self.updater.needs_rebuild(self.bundle, self.env) == True def test_depends_changed(self): # Changing the depends attribute of a bundle will NOT cause # a rebuild. This is a close call, and might just as well work # differently. I decided that the purity of the Bundle.id # implementation in not including anything that isn't affecting # to the final output bytes was more important. If the user # is changing depends than after the next rebuild that change # will be effective anyway. self.updater.build_done(self.bundle, self.env) self.bundle.depends += ['foo'] assert self.updater.needs_rebuild(self.bundle, self.env) == False