def setUp(self): self.environ0 = os.environ.copy() self.dbpath = os.path.join(testEupsStack, "ups_db") self.out = Stdout() self.err = StringIO.StringIO() eups.setupcmd._errstrm = self.err os.environ["EUPS_PATH"] = testEupsStack os.environ["EUPS_PKGROOT"] = \ os.path.join(testEupsStack,"testserver","s2") if "EUPS_FLAGS" in os.environ: del os.environ["EUPS_FLAGS"]
def testDeclareStdinTable(self): pdir = os.path.join(testEupsStack, "Linux", "newprod") pdir11 = os.path.join(pdir, "1.1") tableStrm = StringIO.StringIO('setupRequired("python")\n') prod = self.eups.findProduct("newprod", "1.1") self.assert_(prod is None, "newprod is already declared") # declare with table coming from input stream self.eups.declare("newprod", "1.1", pdir11, testEupsStack, tableStrm) prod = self.eups.findProduct("newprod", "1.1") self.assert_(prod is not None, "failed to declare newprod 1.1") self.assertEqual(prod.tablefile, os.path.join(self.dbpath, "Linux","newprod","1.1", "ups", "newprod.table"))
#!/usr/bin/env python """ Tests for selected deprecated functions """ import os import sys import unittest import testCommon from testCommon import testEupsStack from eups.utils import StringIO # reroute the error stream defined in eups.util to newerr syserr = sys.stderr newerr = StringIO.StringIO() sys.stderr = newerr import eups.utils eups.utils.reload(eups.utils) sys.stderr = syserr from eups.Product import Product from eups.Eups import Eups class DeprecatedTestCase(unittest.TestCase): def setUp(self): self.environ0 = os.environ.copy() os.environ["EUPS_PATH"] = testEupsStack os.environ["EUPS_FLAVOR"] = "Linux"
def testTaggedDeps2(self): """ test equivalent to "setup --tag mine prod" where dependency is tagged "mine" """ # do some setup for this test pdir = os.path.join(testEupsStack, "Linux", "newprod") pdir10 = os.path.join(pdir, "1.0") pdir20 = os.path.join(pdir, "1.0") pdbdir = os.path.join(self.dbpath, "newprod") pupsdir = os.path.join(pdbdir, "Linux") ptble10 = os.path.join(pupsdir, "1.0.table") ptble20 = os.path.join(pupsdir, "2.0.table") newprodtable = \ """ setupRequired(python 2.5.2 [>= 2.5]) """ pyprod = self.eups.getProduct("python", "2.5.2") pytdir = pyprod.dir self.eups.declare("newprod", "1.0", pdir10, testEupsStack, tablefile=StringIO(newprodtable), tag="current") self.eups.declare("newprod", "2.0", pdir20, testEupsStack, tablefile=StringIO(newprodtable)) self.eups.declare("python", "test", pytdir, testEupsStack) self.eups.assignTag("rhl", "python", "test") # test the setup self.assert_( self.eups.findProduct("newprod", "1.0") is not None, "newprod 1.0 not declared") self.assert_( self.eups.findProduct("newprod", "2.0") is not None, "newprod 2.0 not declared") self.assert_(os.path.exists(ptble10), "Can't find newprod 1.0's table file") self.assert_(os.path.exists(ptble20), "Can't find newprod 2.0's table file") self.assert_( self.eups.findProduct("python", "test") is not None, "python test not declared") self.assertEqual( len(p for p in self.eups.uses("python") if p[0] == "newprod"), 2, "newprod does not depend on python") # now we are ready to go: request the beta version of newprod q = eups.Quiet(self.eups) eups.setup("newprod", prefTags="rhl", eupsenv=self.eups) del q prod = self.eups.findSetupProduct("newprod") self.assert_(prod is not None, "newprod not setup") self.assertEqual(prod.version, "1.0") self.assertIn("SETUP_NEWPROD", os.environ, "SETUP_NEWPROD not set") self.assertIn("NEWPROD_DIR", os.environ, "NEWPROD_DIR not set") self.assertEqual(os.environ["NEWPROD_DIR"], pdir20) prod = self.eups.findSetupProduct("python") self.assert_(prod is not None, "python not setup") self.assertEqual(prod.version, "test") # tagged rhl self.assertIn("SETUP_PYTHON", os.environ, "SETUP_PYTHON not set") self.assertIn("PYTHON_DIR", os.environ, "PYTHON_DIR not set") self.assertEqual(os.environ["PYTHON_DIR"], prod.dir)
def testTaggedTarget(self): """ test equivalent to "setup --tag mine prod" where prod is tagged "mine" """ # do some setup for this test pdir = os.path.join(testEupsStack, "Linux", "newprod") pdir10 = os.path.join(pdir, "1.0") pdir20 = os.path.join(pdir, "1.0") pdbdir = os.path.join(self.dbpath, "newprod") pupsdir = os.path.join(pdbdir, "Linux") ptble10 = os.path.join(pupsdir, "1.0.table") ptble20 = os.path.join(pupsdir, "2.0.table") newprodtable = \ """ setupRequired(python) """ self.eups.declare("newprod", "1.0", pdir10, testEupsStack, tablefile=StringIO(newprodtable)) self.eups.declare("newprod", "2.0", pdir20, testEupsStack, tablefile=StringIO(newprodtable), tag="beta") # test the setup self.assert_( self.eups.findProduct("newprod", "1.0") is not None, "newprod 1.0 not declared") self.assert_( self.eups.findProduct("newprod", "2.0") is not None, "newprod 2.0 not declared") self.assert_(os.path.exists(ptble10), "Can't find newprod 1.0's table file") self.assert_(os.path.exists(ptble20), "Can't find newprod 2.0's table file") self.assertEqual( len(p for p in self.eups.uses("python") if p[0] == "newprod"), 2, "newprod does not depend on python") # now we are ready to go: request the beta version of newprod eups.setup("newprod", prefTags="beta") prod = self.eups.findSetupProduct("newprod") self.assert_(prod is not None, "newprod not setup") self.assertEqual(prod.version, "2.0") self.assertIn("SETUP_NEWPROD", os.environ, "SETUP_NEWPROD not set") self.assertIn("NEWPROD_DIR", os.environ, "NEWPROD_DIR not set") self.assertEqual(os.environ["NEWPROD_DIR"], pdir20) prod = self.eups.findSetupProduct("python") self.assert_(prod is not None, "python not setup") self.assertEqual(prod.version, "2.5.2") # tagged current self.assertIn("SETUP_PYTHON", os.environ, "SETUP_PYTHON not set") self.assertIn("PYTHON_DIR", os.environ, "PYTHON_DIR not set") self.assertEqual(os.environ["PYTHON_DIR"], prod.dir) eups.unsetup("newprod") prod = self.eups.findSetupProduct("newprod") self.assert_(prod is None, "newprod is still setup") self.assertNotIn("SETUP_NEWPROD", os.environ, "SETUP_NEWPROD not set") self.assertNotIn("NEWPROD_DIR", os.environ, "NEWPROD_DIR not set") prod = self.eups.findSetupProduct("python") self.assert_(prod is None, "python is still setup") self.assertNotIn("SETUP_PYTHON", os.environ, "SETUP_PYTHON is still set") self.assertNotIn("PYTHON_DIR", os.environ, "PYTHON_DIR is still set") # now test with dependent product with requested tag self.eups.assignTag("beta", "python", "2.6") eups.setup("newprod", prefTags="beta") prod = self.eups.findSetupProduct("newprod") self.assert_(prod is not None, "newprod not setup") self.assertEqual(prod.version, "2.0") self.assertIn("SETUP_NEWPROD", os.environ, "SETUP_NEWPROD not set") self.assertIn("NEWPROD_DIR", os.environ, "NEWPROD_DIR not set") self.assertEqual(os.environ["NEWPROD_DIR"], pdir20) prod = self.eups.findSetupProduct("python") self.assert_(prod is not None, "python not setup") self.assertEqual(prod.version, "2.6") # tagged beta self.assertIn("SETUP_PYTHON", os.environ, "SETUP_PYTHON not set") self.assertIn("PYTHON_DIR", os.environ, "PYTHON_DIR not set") self.assertEqual(os.environ["PYTHON_DIR"], prod.dir) self.eups.unassignTag("beta", "python")
def __init__(self, newstdout=None): self.oldstdout = sys.stdout if newstdout is None: newstdout = StringIO.StringIO() self.stdout = newstdout sys.stdout = self.stdout
def _resetOut(self): if isinstance(self.out, Stdout): del self.out self.out = Stdout() self.err = StringIO.StringIO() eups.cmd._errstrm = self.err