On 03/06/2013 08:21 PM, Julius Gawlas wrote:
Since test_type is not nullable when creating new object we need
to specify it; in the previous version we just set the path. Also
move up the validation for test type.

Julius, I've made some fixes to the install script pushed them to next, and synced next and master.

I've tested the install on a Fedora 17 VM. The install went flawless and even the test importer worked perfectly, so as far as I understand the patch is unnecessary.

Now, I need to go over your patch and validate the changes. I'll do this tomorrow.

Cheers,

Lucas

Signed-off-by: Julius Gawlas <[email protected]>
---
  utils/test_importer.py |   37 ++++++++++++++++++-------------------
  1 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/utils/test_importer.py b/utils/test_importer.py
index c1d8d8c..b1b4027 100755
--- a/utils/test_importer.py
+++ b/utils/test_importer.py
@@ -49,6 +49,9 @@ class TestImporterLoggingConfig(logging_config.LoggingConfig):
  DRY_RUN = False
  DEPENDENCIES_NOT_FOUND = set()

+test_type = {'client': 1,
+             'server': 2, }
+

  def update_all(autotest_dir, add_noncompliant, add_experimental):
      """
@@ -228,12 +231,20 @@ def update_tests_in_db(tests, dry_run=False, 
add_experimental=False,
                              '%s not in %s, did you forget to use -z option?' %
                              (test, autotest_dir))

+        logging.info("Processing %s", test)
+
+        # create test object, first validate test type
+        data = tests[test]
+        if not hasattr(data, 'test_type'):
+            raise Exception('Test type is required')
+        if not data.test_type.lower() in test_type:
+            raise Exception('Incorrect value %s for test_type' %
+                            data.test_type)
          new_test = models.Test.objects.get_or_create(
-                path=test.replace(autotest_dir, '').lstrip('/'))[0]
-        logging.info("Processing %s", new_test.path)
+                path=test.replace(autotest_dir, '').lstrip('/'),
+                test_type=test_type[data.test_type.lower()])[0]

          # Set the test's attributes
-        data = tests[test]
          _set_attributes_clean(new_test, data)

          # Custom Attribute Update
@@ -272,12 +283,9 @@ def _set_attributes_clean(test, data):
      @param test: a test object to be populated for the database.
      @param data: object with test data from the file system.
      """
-    test_type = { 'client' : 1,
-                  'server' : 2, }
-    test_time = { 'short' : 1,
-                  'medium' : 2,
-                  'long' : 3, }
-
+    test_time = {'short': 1,
+                 'medium': 2,
+                 'long': 3, }

      string_attributes = ('name', 'author', 'test_class', 'test_category',
                           'test_category', 'sync_count')
@@ -292,23 +300,14 @@ def _set_attributes_clean(test, data):
          setattr(test, attribute, int(getattr(data, attribute)))

      try:
-        test.test_type = int(data.test_type)
-        if test.test_type != 1 and test.test_type != 2:
-            raise Exception('Incorrect number %d for test_type' %
-                            test.test_type)
-    except ValueError:
-        pass
-    try:
          test.test_time = int(data.time)
-        if test.test_time < 1 or test.time > 3:
+        if not test.test_time in test_time.values():
              raise Exception('Incorrect number %d for time' % test.time)
      except ValueError:
          pass

      if not test.test_time and str == type(data.time):
          test.test_time = test_time[data.time.lower()]
-    if not test.test_type and str == type(data.test_type):
-        test.test_type = test_type[data.test_type.lower()]


  def add_label_dependencies(test):


_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to