Revision: 2557
Author: KariHusa
Date: Fri Feb 26 03:49:09 2010
Log: Added deprecation warnings about settings in init file that will be removed in 2.5, issue 478
http://code.google.com/p/robotframework/source/detail?r=2557

Modified:
 /trunk/src/robot/parsing/metadata.py
 /trunk/src/robot/parsing/model.py

=======================================
--- /trunk/src/robot/parsing/metadata.py        Thu Feb 25 01:19:34 2010
+++ /trunk/src/robot/parsing/metadata.py        Fri Feb 26 03:49:09 2010
@@ -84,7 +84,7 @@
                'timeout': 'Timeout' }


-class TestSuiteMetadata(_Metadata):
+class TestCaseFileMetadata(_Metadata):
     _names = { 'documentation': 'Documentation',
                'document': 'Documentation',
                'suitesetup': 'Suite Setup',
@@ -124,6 +124,18 @@
         self.user_metadata[name] = value


+class TestSuiteInitFileMetadata(TestCaseFileMetadata):
+    _deprecated_metadata = ['testsetup', 'testteardown', 'defaulttags',
+                            'testtimeout']
+
+    def set(self, item):
+        TestCaseFileMetadata.set(self, item)
+        if utils.normalize(item.name) in self._deprecated_metadata:
+ msg = "Using setting '%s' in init file is deprecated and will be " \
+                    "removed in the next major release." % (item.name)
+            item.report_invalid_syntax(msg, 'WARN')
+
+
 class ImportSetting:

     def __init__(self, item):
=======================================
--- /trunk/src/robot/parsing/model.py   Thu Feb 25 04:20:10 2010
+++ /trunk/src/robot/parsing/model.py   Fri Feb 26 03:49:09 2010
@@ -22,7 +22,7 @@
 from robot.output import LOGGER

 from rawdata import RawData, READERS
-from metadata import TestSuiteMetadata, TestCaseMetadata
+from metadata import TestCaseFileMetadata, TestSuiteInitFileMetadata, TestCaseMetadata
 from keywords import KeywordList
 from userkeyword import UserHandlerList

@@ -44,7 +44,7 @@
     def __init__(self, rawdata, parent=None):
         name, source = self._get_name_and_source(rawdata.source)
         BaseTestSuite.__init__(self, name, source, parent)
-        metadata = TestSuiteMetadata(rawdata)
+        metadata = self._get_metadata(rawdata)
         self.doc = metadata['Documentation']
         self.suite_setup = metadata['SuiteSetup']
         self.suite_teardown = metadata['SuiteTeardown']
@@ -92,6 +92,9 @@
         _BaseSuite.__init__(self, rawdata, parent)
         self._create_testcases(rawdata)

+    def _get_metadata(self, rawdata):
+        return TestCaseFileMetadata(rawdata)
+
     def _get_source(self, path):
         return path

@@ -126,6 +129,9 @@
         error = "Test suite directory '%s' contains no test cases." % path
         self._create_subsuites(subitems, suitenames, error)

+    def _get_metadata(self, rawdata):
+        return TestSuiteInitFileMetadata(rawdata)
+
     def _get_source(self, path):
         # 'path' points either to directory or __init__ file inside it
         return utils.get_directory(path)
@@ -193,6 +199,9 @@
error = 'Data sources %s contain no test cases.' % (utils.seq2str(paths))
         self._create_subsuites(paths, suitenames, error)

+    def _get_metadata(self, rawdata):
+        return TestCaseFileMetadata(rawdata)
+
     def _get_name_and_source(self, path):
         return '', None

Reply via email to