def setUp(self): import tempfile from collective.eggproxy.utils import IndexProxy from collective.eggproxy.config import config self.tempdir = tempfile.mkdtemp() self.base_index = os.path.join(self.tempdir, "index.html") config["eggs_directory"] = self.tempdir self.index = IndexProxy(config)
def updateCache(*args): config.initialize() # A file is outdated if it does not exists or if its modification date is # older than now - update_interval isOutDated = lambda fn: not (os.path.exists(fn) and os.path.getmtime(fn) > int(time()) - config.update_interval * 3600) eggs_index_proxy = IndexProxy(config) if isOutDated(os.path.join(config.eggs_directory, 'index.html')): eggs_index_proxy.updateBaseIndex() for package_name in os.listdir(config.eggs_directory): dir_path = os.path.join(config.eggs_directory, package_name) if not os.path.isdir(dir_path): continue if isOutDated(os.path.join(dir_path, 'index.html')): try: eggs_index_proxy.updatePackageIndex(package_name) except PackageNotFound, msg: # FIXME: use logging print msg
# -*- coding: utf-8 -*- from collective.eggproxy.utils import IndexProxy from collective.eggproxy.tests import * index = IndexProxy() @with_setup(setup_func, teardown_func) def test_index(): # assume non-existence assert os.path.isfile(os.path.join(tempdir, 'index.html')) == False index.updateBaseIndex(tempdir) # assume existence assert os.path.isfile(os.path.join(tempdir, 'index.html')) == True page = open(os.path.join(tempdir, 'index.html')).read() # check case assert 'auth' in page @with_setup(setup_func, teardown_func) def test_local_index(): dirname = os.path.join(tempdir, 'my.eggproxy.test.package') os.mkdir(dirname) index.updateBaseIndex(tempdir) page = open(os.path.join(tempdir, 'index.html')).read()
class TestUtils(unittest.TestCase): def setUp(self): import tempfile from collective.eggproxy.utils import IndexProxy from collective.eggproxy.config import config self.tempdir = tempfile.mkdtemp() self.base_index = os.path.join(self.tempdir, "index.html") config["eggs_directory"] = self.tempdir self.index = IndexProxy(config) def tearDown(self): import shutil shutil.rmtree(self.tempdir) def test_index(self): # assume non-existence assert os.path.isfile(self.base_index) is False self.index.updateBaseIndex(self.tempdir) # assume existence assert os.path.isfile(self.base_index) is True page = open(self.base_index).read() # check case assert "PasteDeploy" in page def test_local_index(self): dirname = os.path.join(self.tempdir, "my.eggproxy.test.package") os.mkdir(dirname) self.index.updateBaseIndex(self.tempdir) page = open(self.base_index).read() assert '<a href="my.eggproxy.test.package/">' "my.eggproxy.test.package</a>" in page def test_package(self): self.index.updatePackageIndex("collective.eggproxy", self.tempdir) dirname = os.path.join(self.tempdir, "collective.eggproxy") assert os.path.isdir(dirname) is True assert os.listdir(dirname) == ["index.html"] ["index.html"] page = open(os.path.join(dirname, "index.html")).read() assert "<html><head><title>Links for collective.eggproxy" "</title></head>" in page def test_local_packages(self): dirname = os.path.join(self.tempdir, "collective.eggproxy") os.mkdir(dirname) dummy = open(os.path.join(dirname, "collective.eggproxy-0.0.0.tar.gz"), "w") dummy.write("") dummy.close() self.index.updatePackageIndex("collective.eggproxy", self.tempdir) page = open(os.path.join(dirname, "index.html")).read() assert ( '<a href="collective.eggproxy-0.0.0.tar.gz" rel="download">' "collective.eggproxy-0.0.0.tar.gz</a>" in page ) def test_package_case_sensitive(self): self.index.updatePackageIndex("Paste", self.tempdir) dirname = os.path.join(self.tempdir, "Paste") assert os.path.isdir(dirname) is True assert os.listdir(dirname) == ["index.html"] ["index.html"] page = open(os.path.join(dirname, "index.html")).read() assert "<html><head><title>Links for Paste</title></head>" in page
# -*- coding: utf-8 -*- ## Copyright (C) 2008 Ingeniweb ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; see the file COPYING. If not, write to the ## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from collective.eggproxy.utils import PackageNotFound from collective.eggproxy.utils import IndexProxy eggs_index_proxy = IndexProxy()