From Fedora Project Wiki

Line 17: Line 17:
 
<code>start_job ([testplan_url]) -> job_id </code>
 
<code>start_job ([testplan_url]) -> job_id </code>
  
 +
'''Params'''
 
* <code>testplan_url</code> ~ link to wiki page with metadata (usefull for frontends)
 
* <code>testplan_url</code> ~ link to wiki page with metadata (usefull for frontends)
 +
'''Returns'''
 
* <code>job_id</code> ~ job identifier for Job <-> Testrun relationship.
 
* <code>job_id</code> ~ job identifier for Job <-> Testrun relationship.
  
Line 27: Line 29:
 
<code>start_testrun (test_url, [job_id]) -> testrun_id</code>
 
<code>start_testrun (test_url, [job_id]) -> testrun_id</code>
  
 +
'''Params'''
 
* <code>test_url</code> ~ link to wiki page with metadata (usefull for frontends)
 
* <code>test_url</code> ~ link to wiki page with metadata (usefull for frontends)
 
* <code>job_id</code> ~ optional argument. If set, new record will be created in the Job <-> Testrun relationship table.
 
* <code>job_id</code> ~ optional argument. If set, new record will be created in the Job <-> Testrun relationship table.
 +
'''Returns'''
 +
* <code>testrun_id</code> ~ identifier of the record inside Testrun table.
  
Use to create new entry in the Testrun table. Sets up the start_time
+
Use to create new entry in the Testrun table. Sets up the start_time and creates new entry in the Job<->Testrun relationship table, if <code>job_id</code> was set.
 +
Returns <code>testrun_id</code> which is required as an argument for almost every method. <code>testrun_id</code> is the key identifying the relationship between Testrun and the other tables in database.
  
 
=== end_testrun ===
 
=== end_testrun ===
  
<code>end_testrun (testrun_id, result, [keyval_pairs, summary, highlights])</code>
+
<code>end_testrun (testrun_id, result, log_url, [keyval_pairs, summary, highlights, score])</code>
 +
 
 +
'''Params'''
 +
* <code>testrun_id</code> ~ Testrun identifier (see [[#start_testrun]]
 +
* <code>result</code> ~ PASSED, FAILED, INFO, ... (see <<Result>> at [[AutoQA_resultsdb_schema#Result|ResultsDB schema]])
 +
* <code>log_url</code> ~ URL pointing to logs etc. (most probably in the Autotest storage)
 +
* <code>keyval_pairs</code> ~ Dictionary of key-value pairs, which will be stored in the TestrunData table. If value is array, then multiple lines are created.
 +
* <code>summary</code> ~ ? not sure right now, probably name of the file with summary which could be found at <code>log_url</code>
 +
* <code>highlights</code> ~ ? not sure right now, probably name of the file, which will contain 'digest' from the logs (created by the test by selecting appropriate error/warn messages etc.) with summary which could be found at <code>log_url</code>
 +
* <code>score</code> ~ ? not sure. kparal?
  
 
=== start_phase ===
 
=== start_phase ===
Line 54: Line 69:
 
<pre>
 
<pre>
 
testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_test_page")
 
testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_test_page")
end_testrun (testrun_id, "PASSED")
+
end_testrun (testrun_id, "PASSED", log_url)
 
</pre>
 
</pre>
  
Line 65: Line 80:
 
   start_phase (testrun_id, "Second phase")
 
   start_phase (testrun_id, "Second phase")
 
   end_phase (testrun_id, "PASSED")
 
   end_phase (testrun_id, "PASSED")
end_testrun (testrun_id, "PASSED")
+
end_testrun (testrun_id, "PASSED", log_url)
 
</pre>
 
</pre>
  
Line 76: Line 91:
 
     end_phase (testrun_id, "PASSED")
 
     end_phase (testrun_id, "PASSED")
 
   end_phase (testrun_id, "PASSED")
 
   end_phase (testrun_id, "PASSED")
end_testrun (testrun_id, "PASSED")
+
end_testrun (testrun_id, "PASSED", log_url)
 
</pre>
 
</pre>
  
Line 86: Line 101:
 
     start_phase (testrun_id, "First phase")
 
     start_phase (testrun_id, "First phase")
 
     end_phase (testrun_id, "PASSED")
 
     end_phase (testrun_id, "PASSED")
   end_testrun (testrun_id, "PASSED")
+
   end_testrun (testrun_id, "PASSED", log_url)
  
 
   testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_other_test_page")
 
   testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_other_test_page")
 
     start_phase (testrun_id, "First phase")
 
     start_phase (testrun_id, "First phase")
 
     end_phase (testrun_id, "PASSED")
 
     end_phase (testrun_id, "PASSED")
   end_testrun (testrun_id, "PASSED")
+
   end_testrun (testrun_id, "PASSED", log_url)
 
</pre>
 
</pre>

Revision as of 14:32, 12 April 2010

Stop (medium size).png
Draft
This page is only draft, and will change in time.
Idea.png
See ResultsDB schema
Knowledge from AutoQA_resultsdb_schema may be required.

Syntax Description

method_name (arg1, [arg2, arg3 = "Foo"]) -> return_value

  • method_name ~ name of the respective method (see #Methods)
  • arg1 ~ required argument
  • arg2 ~ optional argument, default value is set to None
  • arg3 ~ optional argument, default value is set to "Foo"
  • -> return_value ~ method gives back the return_value

Methods

start_job

start_job ([testplan_url]) -> job_id

Params

  • testplan_url ~ link to wiki page with metadata (usefull for frontends)

Returns

  • job_id ~ job identifier for Job <-> Testrun relationship.

Intended to be used mostly by the AutoQA scheduler, when one will need to logically connect results of more tests for one package/repo/... The job_id value will then be passed to the test probably via control file (i.e. another argument for job.run())

start_testrun

start_testrun (test_url, [job_id]) -> testrun_id

Params

  • test_url ~ link to wiki page with metadata (usefull for frontends)
  • job_id ~ optional argument. If set, new record will be created in the Job <-> Testrun relationship table.

Returns

  • testrun_id ~ identifier of the record inside Testrun table.

Use to create new entry in the Testrun table. Sets up the start_time and creates new entry in the Job<->Testrun relationship table, if job_id was set. Returns testrun_id which is required as an argument for almost every method. testrun_id is the key identifying the relationship between Testrun and the other tables in database.

end_testrun

end_testrun (testrun_id, result, log_url, [keyval_pairs, summary, highlights, score])

Params

  • testrun_id ~ Testrun identifier (see #start_testrun
  • result ~ PASSED, FAILED, INFO, ... (see <<Result>> at ResultsDB schema)
  • log_url ~ URL pointing to logs etc. (most probably in the Autotest storage)
  • keyval_pairs ~ Dictionary of key-value pairs, which will be stored in the TestrunData table. If value is array, then multiple lines are created.
  • summary ~ ? not sure right now, probably name of the file with summary which could be found at log_url
  • highlights ~ ? not sure right now, probably name of the file, which will contain 'digest' from the logs (created by the test by selecting appropriate error/warn messages etc.) with summary which could be found at log_url
  • score ~ ? not sure. kparal?

start_phase

start_phase (testrun_id, name)

end_phase

end_phase (testrun_id, result)

store_keyval

store_keyval (testrun_id, keyval_pairs)

Workflows

Simple

testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_test_page")
end_testrun (testrun_id, "PASSED", log_url)

Phases - simple

testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_test_page")
  start_phase (testrun_id, "First phase")
  end_phase (testrun_id, "PASSED")
  start_phase (testrun_id, "Second phase")
  end_phase (testrun_id, "PASSED")
end_testrun (testrun_id, "PASSED", log_url)

Phases - nested

testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_test_page")
  start_phase (testrun_id, "First phase")
    start_phase (testrun_id, "Second phase")
    end_phase (testrun_id, "PASSED")
  end_phase (testrun_id, "PASSED")
end_testrun (testrun_id, "PASSED", log_url)

Using Job

job_id = start_job ()
  testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_test_page")
    start_phase (testrun_id, "First phase")
    end_phase (testrun_id, "PASSED")
  end_testrun (testrun_id, "PASSED", log_url)

  testrun_id = start_testrun ("http://fedoraproject.org/wiki/QA:Some_other_test_page")
    start_phase (testrun_id, "First phase")
    end_phase (testrun_id, "PASSED")
  end_testrun (testrun_id, "PASSED", log_url)