Example #1
0
    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"]
Example #2
0
    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"))
Example #3
0
#!/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"
Example #4
0
    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)
Example #5
0
    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")
Example #6
0
 def __init__(self, newstdout=None):
     self.oldstdout = sys.stdout
     if newstdout is None:
         newstdout = StringIO.StringIO()
     self.stdout = newstdout
     sys.stdout = self.stdout
Example #7
0
 def _resetOut(self):
     if isinstance(self.out, Stdout):
         del self.out
         self.out = Stdout()
     self.err = StringIO.StringIO()
     eups.cmd._errstrm = self.err