def test_basic_pool(self): pool = CFDPool() sample_class = object pool.register(sample_class) with self.assertRaises(AlreadyRegisteredException): pool.register(sample_class)
class AptGetPackageManager(CFDPackageManager): def version(self, package): return False def install(self, package, version=None): subprocess.check_call(['apt-get', '-q', '-y', 'install', package], stdout=subprocess.PIPE) def uninstall(self, package): subprocess.check_call(['apt-get', '-q', '-y', 'remove', package], stdout=subprocess.PIPE) def remove(self, package): subprocess.check_call(['apt-get', '-q', '-y', 'purge', package], stdout=subprocess.PIPE) package_manager_registry.register(AptGetPackageManager, 'apt-get') class PipPackageManager(CFDPackageManager): def list_installed_packages(self): packages = subprocess.check_output(['pip', 'freeze']) return [pkg.split("==")[0] for pkg in packages.split("\n")] def version(self, package): packages = subprocess.check_output(['pip', 'freeze']) return ([pkg.split("==")[1] for pkg in packages.split("\n") if pkg.split("==")[0] == package] or [None])[0] def install(self, package, version=None): if version: subprocess.check_call(['pip', 'install', '-q', '%s==%s' % (package, version)], stdout=subprocess.PIPE)