[Chandler-dev] Internationalization Requirements for CATS testing
Framework
Brian Kirsch
bkirsch at osafoundation.org
Wed Jul 12 13:57:57 PDT 2006
Hi Dan,
See comments inline.
Dan Steinicke wrote:
> Hi Brian,
>
> I personally went through the commit logs for the changes to the tests
> in the old framework and updated the
> new tests with these same changes. Your i18n changes were the bulk of
> this (including adding the uw() method)
> but there were also a number of changes from other devs. The amount
> of effort that must now be expended to maintain
> two sets of tests is the main reason I am now pushing for moving
> quickly forward to using the new tests. Once
> the new tests are running on tinderbox without problems the plan is to
> stop maintaining the old tests.
+1 makes sense to migrate as soon as possible.
>
> The new framework is mainly about how the tests are run and logged,
> with little change to the function of the tests themselves.
>
> I don't believe we have made any special efforts to adapt the CATS-0.2
> framework for i18n testing specifically, other than the
> new framework being more flexible and easier to develop tests for. My
> first thought on this is that we should
> continue to push ahead to get the new framework working on tinderbox
> and once that is accomplished look work on the
> modifications you mention to test for i18n issues.
Sounds good!
> I would welcome your input on the new framework and its suitability to
> testing i18n issues and expect to work closely with you to develop
> this functionality in the future. (links to docs in original msg)
>
Yes, we will need to work together to create a good i18n testing framework.
> If you wish to continue this discussion, can we start a new thread?
> This an important issue but one that is pretty far afield from
> my original request seeking comment on the new logger output.
>
Yes lets start a new thread called: "Internationalization Requirements
for CATS testing Framework".
At this stage it makes sense to complete your CATS migration work. I
will review the new framework to make
sure that the i18n changes from CATS-0.1 all got ported to CATS-0.2.
At that point we can start talking about additional i18n requirements
for CATS-0.3.
Thanks,
Brian
> Dan
>
> Brian Kirsch wrote:
>
>> Hi Dan,
>> It is very important that CATS-0.2 be design with
>> internationalization support in mind.
>> The most common issues / bugs that arise related to i18n are subtle
>> and a good testing
>> framework is essential.
>>
>> Could you detail what work / thought has gone in to CATS-0.2
>> regarding i18n and what is left to be done.
>>
>> Specifically in CATS-0.1 I went through and wrapped all displayable
>> strings in uw() methods from the
>> i18n.tests package. The uw method inserted a semi-random unicode
>> character at the beginning of the
>> displayable string and a unicode character at the end of the
>> displayable string.
>>
>> Adding this uw() wrap was key to finding many subtle bugs including
>> incorrectly logging
>> unicode characters and not encoding unicode to bytes when using the
>> Python file system API's.
>>
>> It even uncovered issues with the CATS-0.1 framework itself including
>> a few places where items were
>> converted to strings i.e. str(item) which is a no no!
>>
>> Using unicode strings is only a small aspect of an i18n testing
>> framework.
>>
>> In CATS I would like the framework to provide support for running in
>> different locales and of course timezones.
>>
>> For each locale the expected output for many operations will change.
>> For example a date / time string will
>> be different, the first day or the week in a calendar can be
>> different, The UI menu labels and auto generated
>> collection names will be different.
>>
>> I am happy to sync up with you guys but I do want to make sure at
>> this stage we are writing frameworks that
>> meet the needs of Chandler.
>>
>> Almost all of the Internationalization work will be completed in the
>> Alpha 4 time frame.
>>
>> The testing framework is the key to preventing regression bugs in
>> i18n as we drive towards Chandler 1.0.
>>
>> Thanks,
>> Brian
>>
>>
>> Dan Steinicke wrote:
>>
>>> We are getting close to being able to switch over to the new test
>>> framework (CATS-0.2). As it is currently implemented the output
>>> from the tests will be quite different from the current test output.
>>> Please take a moment to look over the test output samples below and
>>> let us know what you think so we can address peoples concerns before
>>> the new framework goes live, rather than after.
>>>
>>> Two sample outputs are shown below, one where a test fails without a
>>> traceback, another of a failure with a traceback.
>>>
>>> For more info on the new framework see :
>>> general docs
>>> http://wiki.osafoundation.org/bin/view/Projects/ChandlerAutomatedTestSystemZeroPointTwo
>>>
>>> writing new tests
>>> http://wiki.osafoundation.org/bin/view/Projects/WritingChandlerAutomatedTestsWithCATSZeroPointTwo
>>>
>>>
>>> Thanks
>>> Dan
>>>
>>> ############# Here is sample output from do_tests where one tests
>>> fails without a traceback:
>>>
>>> Test Report;
>>> *Suite ""ChandlerTestSuite"" Failed :: Total Time ""0:04:55.434000""
>>> :: Comment ""None""
>>> **Test ""TestSwitchTimezone"" Failed :: Total Time
>>> ""0:00:00.931000"" :: Comment ""None
>>> None""
>>> ***Action ""CheckBlockVisibility"" Failed :: Total Time ""0:00:00""
>>> :: Comment ""(On EditTimeZone Visibility) || detail view = Fa
>>> lse ; expected value = True""
>>> ****Report ""(On EditTimeZone Visibility) || detail view = False ;
>>> expected value = True"" Failed :: Comment ""None""
>>> ***Action ""CheckEditableBlock"" Failed :: Total Time ""0:00:00"" ::
>>> Comment ""(On EditTimeZone Checking) || detail view value =
>>> Floating ; expected value = US/Pacific""
>>> ****Report ""(On EditTimeZone Checking) || detail view value =
>>> Floating ; expected value = US/Pacific"" Failed :: Comment ""None"
>>> "
>>> ***Action ""CheckBlockVisibility"" Failed :: Total Time ""0:00:00""
>>> :: Comment ""(On EditTimeZone Visibility) || detail view = Fa
>>> lse ; expected value = True""
>>> ****Report ""(On EditTimeZone Visibility) || detail view = False ;
>>> expected value = True"" Failed :: Comment ""None""
>>> ***Action ""CheckEditableBlock"" Failed :: Total Time ""0:00:00"" ::
>>> Comment ""(On EditTimeZone Checking) || detail view value =
>>> Floating ; expected value = US/Pacific""
>>> ****Report ""(On EditTimeZone Checking) || detail view value =
>>> Floating ; expected value = US/Pacific"" Failed :: Comment ""None"
>>> "
>>> $Suites run=1, pass=0, fail=1 :: Tests run=26, pass=25, fail=1 ::
>>> Actions run=367, pass=363, fail=4 :: Reports run=556, pass=552,
>>> fail=4
>>> #TINDERBOX# Testname = ChandlerTestSuite
>>> #TINDERBOX# Time elapsed = 0:04:55.434000 (seconds)
>>> #TINDERBOX# Status = FAILED
>>> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
>>> The following tests failed
>>>
>>> (debug)C:\cygwin\home\Dan\chandler\tools\cats\Functional\FunctionalTestSuite.py
>>>
>>>
>>> (release)C:\cygwin\home\Dan\chandler\tools\cats\Functional\FunctionalTestSuite.py
>>>
>>>
>>>
>>> ########## here is some sample output of a test failing with a
>>> traceback
>>>
>>>
>>> Test Report;
>>> *Suite ""ChandlerTestSuite"" Failed :: Total Time ""0:00:06.139000""
>>> :: Comment ""None""
>>> **Test ""TestCauseTrace"" Failed :: Total Time ""0:00:00.040000"" ::
>>> Comment ""None
>>> Test Failure due to traceback
>>> Traceback (most recent call last):
>>> File "C:\cygwin\home\Dan\chandler\tools\cats\framework\runTests.py",
>>> line 51, in run_tests
>>> test.runTest()
>>> File
>>> "C:\cygwin\home\Dan\chandler\tools\cats\framework\ChandlerTestCase.py",
>>> line 68, in runTest
>>> self.startTest()
>>> File
>>> "C:\cygwin\home\Dan\chandler\tools\cats\Functional\TestCauseTrace.py",
>>> line 24, in startTest
>>> 1/0
>>> ZeroDivisionError: integer division or modulo by zero
>>> ""
>>> ***Action ""Divide by zero "" Failed :: Total Time
>>> ""0:00:00.040000"" :: Comment ""None""
>>> ****Report ""Action Failure due to traceback"" Failed :: Comment
>>> ""None""
>>> $Suites run=1, pass=0, fail=1 :: Tests run=3, pass=2, fail=1 ::
>>> Actions run=5, pass=4, fail=1 :: Reports run=28, pass=27, fail=1
>>> #TINDERBOX# Testname = ChandlerTestSuite
>>> #TINDERBOX# Time elapsed = 0:00:06.139000 (seconds)
>>> #TINDERBOX# Status = FAILED
>>>
>>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>>
>>> Open Source Applications Foundation "chandler-dev" mailing list
>>> http://lists.osafoundation.org/mailman/listinfo/chandler-dev
>>
>>
>>
--
Brian Kirsch
Internationalization Architect/ Mail Service Engineer
Open Source Applications Foundation
543 Howard Street 5th Floor
San Francisco, CA 94105
http://www.osafoundation.org
More information about the chandler-dev
mailing list