Revision: 3343
Author: jprantan
Date: Thu May 20 03:13:42 2010
Log: Added directory and source properties.
http://code.google.com/p/robotframework/source/detail?r=3343

Modified:
 /trunk/src/robot/parsing/newmodel.py
 /trunk/src/robot/parsing/settings.py

=======================================
--- /trunk/src/robot/parsing/newmodel.py        Wed May 19 06:35:22 2010
+++ /trunk/src/robot/parsing/newmodel.py        Thu May 20 03:13:42 2010
@@ -53,12 +53,13 @@

     def __init__(self, source=None):
         _TestData.__init__(self, source)
+ self.directory = os.path.dirname(self.source) if self.source else None
         self.setting_table = SettingTable(self)
         self.variable_table = VariableTable(self)
         self.testcase_table = TestCaseTable(self)
         self.keyword_table = KeywordTable(self)
-        if source:
-            FileReader().read(source, self)
+        if self.source:
+            FileReader().read(self.source, self)

     def __iter__(self):
         for table in [self.setting_table, self.variable_table,
@@ -70,14 +71,15 @@

     def __init__(self, source=None):
         _TestData.__init__(self, source)
+        self.directory = self.source
         self.initfile = None
         self.setting_table = SettingTable(self)
         self.variable_table = VariableTable(self)
self.testcase_table = TestCaseTableNotAllowed('test suite init file')
         self.keyword_table = KeywordTable(self)
         self.children = []
-        if source:
-            DirectoryReader().read(source, self)
+        if self.source:
+            DirectoryReader().read(self.source, self)

     def add_child(self, path):
         self.children.append(TestData(path))
@@ -93,6 +95,14 @@
     def __init__(self, parent):
         self.parent = parent

+    @property
+    def source(self):
+        return self.parent.source
+
+    @property
+    def directory(self):
+        return self.parent.directory
+
     def report_invalid_syntax(self, message, level='ERROR'):
         # TODO: Use the real table name here when headers are available
         table = type(self).__name__.replace('Table', '')
@@ -115,19 +125,19 @@
         self.imports = []

     def add_metadata(self, name, value, comment=None):
-        self.metadata.append(Metadata(name, value, comment))
+        self.metadata.append(Metadata(self, name, value, comment))
         return self.metadata[-1]

     def add_library(self, name, args=None, comment=None):
-        self.imports.append(Library(name, args, comment=comment))
+        self.imports.append(Library(self, name, args, comment=comment))
         return self.imports[-1]

     def add_resource(self, name, invalid_args=None, comment=None):
-        self.imports.append(Resource(name, invalid_args, comment=comment))
+ self.imports.append(Resource(self, name, invalid_args, comment=comment))
         return self.imports[-1]

     def add_variables(self, name, args=None, comment=None):
-        self.imports.append(Variables(name, args, comment=comment))
+        self.imports.append(Variables(self, name, args, comment=comment))
         return self.imports[-1]

     def __iter__(self):
=======================================
--- /trunk/src/robot/parsing/settings.py        Thu May 20 02:57:56 2010
+++ /trunk/src/robot/parsing/settings.py        Thu May 20 03:13:42 2010
@@ -23,6 +23,14 @@
     def _init(self):
         self.value = []

+    @property
+    def source(self):
+        return self.table.source
+
+    @property
+    def directory(self):
+        return self.table.directory
+
     def set(self, value, comment=None):
         self._set(value)
         self.comment = comment

Reply via email to