Source code for nxpy.ccase.test.env
# nxpy.ccase package ---------------------------------------------------------
# Copyright Nicola Musatti 2012 - 2014
# Use, modification, and distribution are subject to the Boost Software
# License, Version 1.0. (See accompanying file LICENSE.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
# See http://nxpy.sourceforge.net for library home page. ---------------------
r"""
Clearcase test environment definition.
"""
from __future__ import absolute_import
import os.path
import platform
from six.moves import configparser
import nxpy.test.env
[docs]class ConfigurationError(Exception):
r"""Raised when the ClearCase test environment is not properly set."""
[docs]class Env(nxpy.test.env.EnvBase):
r"""Environment configuration information for ClearCase related tests."""
src_link_name = "nxpy_test_link"
r"""Name for a link created when testing the *ln()* method."""
backup_ext = ".test"
r"""Extension used for backup files."""
def __init__(self):
r"""Takes initialization information from a conventionally placed configuration file."""
nxpy.test.env.EnvBase.__init__(self, "conf")
self.parser = configparser.SafeConfigParser()
self.parser.read(os.path.join(self.elem_dir, "ccase.ini"))
self.section = platform.node()
if not self.parser.has_section(self.section):
self.section = "localhost"
if not self.parser.has_section(self.section):
raise ConfigurationError("ccase.ini has no section for this computer")
self.src_view_dir = self._get("src_view_dir")
self.src_view_tag = self._get("src_view_tag")
self.src_stream_tag = self._get("src_stream_tag")
self.src_stream_sel = self._get("src_stream_sel")
self.src_proj_sel = self._get("src_proj_sel")
self.relative_src_dir = self._get("relative_src_dir")
self.src_file_name = self._get("src_file_name")
self.dest_view_dir = self._get("dest_view_dir")
self.dest_view_tag = self._get("dest_view_tag")
self.dest_stream_sel = self._get("dest_stream_sel")
self.proj_vob = self._get("proj_vob")
self.lsview_tags = self._get("lsview_tags")
self.activity = self._get("activity")
self.test = self._getboolean("test")
self.src_dir_path = os.path.join(self.src_view_dir, self.relative_src_dir)
self.src_file_path = os.path.join(self.src_dir_path, self.src_file_name)
self.backup_file_name = self.src_file_name + self.backup_ext
self.src_stream_pattern = "\*" + self.src_stream_tag + "\*"
def _get(self, option):
return self.parser.get(self.section, option)
def _getboolean(self, option):
return self.parser.getboolean(self.section, option)
[docs]def get_env(test):
r"""
If the environment is correctly configured an instance of *Env* is returned, otherwise
the current test is skipped. *test* is a :py:class:`unittest.TestCase` instance containing the
test currently being executed.
"""
try:
return Env()
except nxpy.test.env.TestEnvNotSetError:
test.skipTest("Test environment not set")
return None