Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qmtest] Questions [context scope, prerequisites enforcement]


  • To: Stefan Seefeld <stefan@xxxxxxxxxxxxxxxx>
  • Subject: Re: [qmtest] Questions [context scope, prerequisites enforcement]
  • From: Mohamed Barwani <mohamedb@xxxxxxx>
  • Date: Fri, 11 Apr 2008 10:14:52 +1000

Thanks Stefan!

Question 2 solved..

Stefan Seefeld wrote:
Hi Mohamed,

Mohamed Barwani wrote:
Hello there..

_1_ Am trying to get my head around python.. Looking at the context
 variable I can easily create new items it in a 'resource' object,
but not in a 'test' object.

All context variables live in the Context object, which is passed to
 Resource.SetUp() as well as Test.Run(), where you can access as well
as modify them.

An example would illustrate what I mean. test_a sets a context variable, where test_b tries to use it.

?<[shark:~/workarea/qmtest_bed]
?<> cat test_*
<?xml version="1.0" ?>
<!DOCTYPE extension
  PUBLIC '-//QM/2.4/Extension//EN'
  'http://www.codesourcery.com/qm/dtds/2.4/-//qm/2.4/extension//en.dtd'>
<extension class="python.ExecTest" kind="test">
   <argument name="prerequisites"><set/></argument>
   <argument name="source">
     <text>context['test_a.var'] = &quot;some_val&quot;</text>
   </argument>
   <argument name="target_group"><text>.*</text></argument>
   <argument name="expression"><text>1</text></argument>
   <argument name="resources"><set/></argument>
</extension>
<?xml version="1.0" ?>
<!DOCTYPE extension
  PUBLIC '-//QM/2.4/Extension//EN'
  'http://www.codesourcery.com/qm/dtds/2.4/-//qm/2.4/extension//en.dtd'>
<extension class="python.ExecTest" kind="test">
  <argument name="prerequisites"><set/></argument>
  <argument name="source">
    <text>print context
print context['test_a.var']
    </text>
  </argument>
  <argument name="target_group"><text>.*</text></argument>
  <argument name="expression"><text>1</text></argument>
  <argument name="resources"><set/></argument>
</extension>
?<[shark:~/workarea/qmtest_bed]
?<> qmtest run test_a test_b
--- TEST RESULTS -------------------------------------------------------------

  test_a                                        : PASS

{'qmtest.tmpdir': '/tmp/tmpRA4MY8', 'qmtest.target': 'local', 'qmtest.dbpath': '/home/mohamedb/workarea/qmtest_bed', 'qmtest.id': 'test_b'}
  test_b                                        : ERROR
    Exception executing source.

    qmtest.context_variable:
      test_a.var

    qmtest.end_time:
      2008-04-11T00:08:16Z

    qmtest.exception:

qm.test.context.ContextException: The context variable "test_a.var" was not defined.


    qmtest.start_time:
      2008-04-11T00:08:16Z

    qmtest.target:
      local

    qmtest.traceback:

File "/usr/lib/python2.4/site-packages/qm/test/classes/python.py", line 87, in Run
          exec self.source in global_namespace, local_namespace

        File "<string>", line 2, in ?

File "/home/mohamedb/Desktop/qmtest-2.4/build/lib.linux-x86_64-2.4/qm/test/context.py", line 298, in __getitem__
          return self.__context[key]

File "/home/mohamedb/Desktop/qmtest-2.4/build/lib.linux-x86_64-2.4/qm/test/context.py", line 296, in __getitem__
          raise ContextException(key)


--- TESTS THAT DID NOT PASS --------------------------------------------------

  test_b                                        : ERROR
    Exception executing source.


--- STATISTICS ---------------------------------------------------------------

       2        tests total
       1 ( 50%) tests ERROR
       1 ( 50%) tests PASS


Thanks for your help again..
--
Mohamed Barwani
ASGQA
"The greatest challenge to any thinker is stating the problem in a way
that will allow a solution."
    - Bertrand Russell