beryl:~ oleg$ env MANPATH=/usr/share/man:/usr/local/share/man:/usr/X11/man TERM_PROGRAM=Apple_Terminal TERM=xterm-color SHELL=/bin/bash TMPDIR=/var/folders/PC/PCtFE4gQGiqpQymiAScfnk+++TM/-Tmp-/ Apple_PubSub_Socket_Render=/tmp/launch-UNXiC6/Render TERM_PROGRAM_VERSION=237 USER=oleg COMMAND_MODE=unix2003 SSH_AUTH_SOCK=/tmp/launch-hfpsIl/Listeners __CF_USER_TEXT_ENCODING=0x1F6:0:0 PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PWD=/Users/oleg LANG=ru_RU.UTF-8 SHLVL=1 HOME=/Users/oleg PYTHONPATH=:/Users/oleg/Documents/wishes_Test LOGNAME=oleg DISPLAY=/tmp/launch-1kgALC/:0 SECURITYSESSIONID=a206d0
On Thu, Jul 17, 2008 at 9:58 AM, Oleg Oltar <[EMAIL PROTECTED]> wrote: > See previous message (sent it few seconds ago) > > > On Thu, Jul 17, 2008 at 9:55 AM, Mark Tolonen <[EMAIL PROTECTED]<[EMAIL > PROTECTED]>> > wrote: > >> OK, your console is set to 'ascii' ('cp437' was my example and is the >> Windows console encoding). 'ascii' won't be able to display Russian. >> It shouldn't have displayed the "ИзвениÑ" characters either. >> Are you still running on the same terminal that display those >> characters? Can you change your terminals encoding preference via an >> environment variable? >> -- >> Mark >> >> "Oleg Oltar" <[EMAIL PROTECTED]> wrote in message >> news:[EMAIL PROTECTED] >> >> And in case: >> # coding: utf-8 >> >> import traceback >> try: >> raise Exception(u'Зрегиться') >> except Exception,e: >> print traceback.format_exc().decode('utf-8').encode('cp437', >> 'replace') >> >> >> Getting >> >> beryl:~ oleg$ python ./wish/newaccount/reg.py >> Traceback (most recent call last): >> File "./wish/newaccount/reg.py", line 5, in <module> >> raise Exception(u'?????????') >> Exception: <unprintable Exception object> >> >> >> >> My console settings: >> >> In [1]: import sys >> >> In [2]: sys.getdefaultencoding() >> Out[2]: 'ascii' >> >> In [3]: sys.stdout.encoding >> Out[3]: 'US-ASCII' >> >> >> On Thu, Jul 17, 2008 at 9:30 AM, Oleg Oltar <[EMAIL PROTECTED]> >> wrote: >> >>> OK >>> the output: >>> >>> # coding: utf-8 >>>> >>>> import traceback >>>> try: >>>> raise Exception(u'Зрегиться') >>>> except Exception,e: >>>> print traceback.format_exc().decode('utf-8') >>>> >>> >>> >>> >>> Traceback (most recent call last): >>> File "/var/folders/PC/PCtFE4gQGiqpQymiAScfnk+++TM/-Tmp-/py46506ECT", >>> line 7, in <module> >>> print traceback.format_exc().decode('utf-8') >>> UnicodeEncodeError: 'ascii' codec can't encode characters in position >>> 148-156: ordinal not in range(128) >>> >>> >>> >>> >>> On Thu, Jul 17, 2008 at 8:13 AM, Mark Tolonen <[EMAIL PROTECTED]<[EMAIL >>> PROTECTED]>> >>> wrote: >>> >>>> The Exception is output in the encoding of the source file. If the >>>> terminal you are displaying the exception on is in a different encoding, it >>>> will be garbled. I'm not familiar with OS X's terminal. Try running >>>> python >>>> and printing sys.stdout.encoding. >>>> >>>> Alternatively, wrap your code in a try/except handler and translate the >>>> exception yourself. >>>> >>>> # coding: utf-8 >>>> import traceback >>>> try: >>>> raise Exception(u'Зарегистрироваться') >>>> except Exception,e: >>>> print traceback.format_exc().decode('utf-8') >>>> >>>> The last line translates the utf-8 traceback into Unicode. Printing >>>> Unicode will encode the output with the terminal's decoding. If there are >>>> characters it can't display, you'll still get an error, though. You can be >>>> more explicit however: >>>> >>>> print >>>> traceback.format_exc().decode('utf-8').encode('cp437','replace') >>>> >>>> In this case you'll get ? whenever a character can't be represented in >>>> the selected encoding. cp437, for example, can't display any russian >>>> characters, so for me (on Windows) I just get all ???????????. When I >>>> tried >>>> it with a character string that could be displayed in cp437, it worked >>>> fine: >>>> >>>> Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>> File "t4.py", line 4, in <module> >>>> raise Exception('MàΓ£ΦΘΩδ') >>>> Exception: MàΓ£ΦΘΩδ >>>> >>>> Another option is to redirect the output to a file and read the file >>>> with an editor that can display utf-8 (such as Notepad on Windows). >>>> >>>> python testfile.py 2>error.txt # this redirects stderr to a >>>> file. >>>> >>>> Hope that helps, >>>> Mark >>>> >>>> "Oleg Oltar" <[EMAIL PROTECTED]> wrote in message >>>> news:[EMAIL PROTECTED] >>>> >>>>> The code >>>> >>>> # -*- coding: utf-8 -*- >>>> #!/usr/bin/python >>>> >>>> >>>> """ >>>> >>>> This test case check how system works in the situation, when user tries >>>> to use already >>>> used username (domain) >>>> >>>> We are creating two accounts with such parameters: >>>> 1. Sex = Femle >>>> 2. Name1=Name2 = foobar%S >>>> 3. Pass1 = Name >>>> 4. Pass2 = Name >>>> 5. Email address1 = Email address2 = [EMAIL PROTECTED] >>>> >>>> >>>> In the test we use verification point - warning message about incorrect >>>> input of domain name and the >>>> sugestion message >>>> >>>> """ >>>> >>>> from selenium import selenium >>>> import unittest, time, re >>>> import HTMLTestRunner >>>> import config >>>> import Creating_account_basic >>>> >>>> >>>> >>>> >>>> class Same_domain_name(unittest.TestCase): >>>> >>>> def setUp(self): >>>> self.name = "foobar" >>>> self.email = self.name + "@meta.ua" >>>> self.verificationErrors = [] >>>> self.selenium = selenium("localhost", 4444,config.browser, >>>> config.link) >>>> self.selenium.start() >>>> >>>> def test_create_account_to_check(self): >>>> """Creating sample account for next test""" >>>> sel = self.selenium >>>> sel.open("/") >>>> sel.click(u"link=Регистрация") >>>> sel.wait_for_page_to_load("70000") >>>> sel.click("id_gender_1") >>>> sel.type("id_first_name", self.name) >>>> sel.type("id_last_name", self.name) >>>> sel.type("id_email", self.email) >>>> sel.type("id_username", self.name) >>>> >>>> #sel.wait_for_condition(sel.is_element_present("check_username_block"), >>>> 70000) >>>> time.sleep(10) >>>> print "!!!", sel.is_element_present("check_username_block") >>>> sel.type("id_password", self.name) >>>> print sel.get_text("check_username_block").decode('cp-1252') >>>> sel.type("id_password2", self.name) >>>> sel.click(u"//[EMAIL PROTECTED]'Зарегистрироваться']") >>>> sel.wait_for_page_to_load("70000") >>>> if config.debugMode is True: >>>> time.sleep(5) >>>> >>>> >>>> def tearDown(self): >>>> self.selenium.stop() >>>> print self.verificationErrors >>>> self.assertEqual([], self.verificationErrors) >>>> >>>> if __name__ == "__main__": >>>> >>>> unittest.main() >>>> #HTMLTestRunner.main() >>>> >>>> >>>> >>>> On Thu, Jul 17, 2008 at 6:47 AM, Oleg Oltar <[EMAIL PROTECTED]> >>>> wrote: >>>> >>>>> In [1]: import sys >>>>> >>>>> In [2]: sys.getdefaultencoding() >>>>> Out[2]: 'ascii' >>>>> >>>>> In [3]: sys.stdout.encoding >>>>> Out[3]: 'US-ASCII' >>>>> >>>>> >>>>> On Thu, Jul 17, 2008 at 6:29 AM, Oleg Oltar <[EMAIL PROTECTED]> >>>>> wrote: >>>>> >>>>>> Seems need help there. Start getting >>>>>> >>>>>> Traceback (most recent call last): >>>>>> File "./newaccount/Same_domain_name.py", line 56, in >>>>>> test_create_account_to_check >>>>>> print sel.get_text("check_username_block") >>>>>> UnicodeEncodeError: 'ascii' codec can't encode characters in position >>>>>> 0-4: ordinal not in range(128) >>>>>> >>>>>> >>>>>> when trying to get the text of one of the elements. >>>>>> >>>>>> How to solve it? >>>>>> >>>>>> >>>>>> On Thu, Jul 17, 2008 at 5:11 AM, Oleg Oltar <[EMAIL PROTECTED]> >>>>>> wrote: >>>>>> >>>>>>> OK, >>>>>>> >>>>>>> I just run the program from terminal. OS: OS X, IDLE = Emacs:). >>>>>>> >>>>>>> Yep used the string "# -*- coding: utf-8 -*-" to setup encoding.... >>>>>>> >>>>>>> >>>>>>> On Thu, Jul 17, 2008 at 4:14 AM, Kent Johnson <[EMAIL PROTECTED]> >>>>>>> wrote: >>>>>>> >>>>>>>> Another possibility - do you have a coding declaration in your >>>>>>>> source >>>>>>>> file, something like >>>>>>>> # -*- coding: <encoding name> -*- >>>>>>>> >>>>>>>> If so, does the coding declaration match the actual encoding of the >>>>>>>> file? >>>>>>>> >>>>>>>> Kent >>>>>>>> >>>>>>>> On Wed, Jul 16, 2008 at 5:11 PM, Kent Johnson <[EMAIL PROTECTED]> >>>>>>>> wrote: >>>>>>>> > On Wed, Jul 16, 2008 at 2:40 PM, Oleg Oltar < >>>>>>>> [EMAIL PROTECTED]> wrote: >>>>>>>> >> Hi I am using unittest framework with selenium. >>>>>>>> >> >>>>>>>> >> When I tried this code (my verification point) >>>>>>>> >> >>>>>>>> >> self.assertEqual(True, sel.is_text_present(u"Извените >>>>>>>> пароли не >>>>>>>> >> совпадают"), "System didn't give a correct warning about the >>>>>>>> password >>>>>>>> >> misstype") >>>>>>>> >> >>>>>>>> >>> Where u"Извените пароли не совпадают" is russian = "Sorry >>>>>>>> passwords aren't >>>>>>>> >>> equal", and sel.is_text_present - searches text string on the >>>>>>>> page >>>>>>>> >> >>>>>>>> >> The output I get in case of failure was: >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> Traceback (most recent call last): >>>>>>>> >> >>>>>>>> >> File "./newaccount/Password_matching.py", line 50, in >>>>>>>> >> test_passwordMatching >>>>>>>> >> self.assertEqual(True, sel.is_text_present(u"Извените >>>>>>>> >> пароли не Ñ Ð¾Ð²Ð¿Ð°Ð´Ð°ÑŽÑ‚"), "System didn't give a >>>>>>>> correct >>>>>>>> >> warning about the password misstype") >>>>>>>> >> >>>>>>>> >> AssertionError: System didn't give a correct warning about the >>>>>>>> password >>>>>>>> >> misstype >>>>>>>> >> >>>>>>>> >> Is there any way to get normal russian text instead of these >>>>>>>> strange D chars >>>>>>>> >> "Изве...." >>>>>>>> > >>>>>>>> > I don't have the solution but maybe I can give you a useful clue. >>>>>>>> The >>>>>>>> > D characters are most likely the utf-8 encoding of the Russian >>>>>>>> text, >>>>>>>> > when displayed as if it is latin-1. So something in the system is >>>>>>>> > converting the text to utf-8 and your console probably has latin-1 >>>>>>>> or >>>>>>>> > cp1252 encoding. >>>>>>>> > >>>>>>>> > Some details might help - how are you running the program - >>>>>>>> console, >>>>>>>> > IDLE...? What OS? What are the values of sys.getdefaultencoding() >>>>>>>> and >>>>>>>> > sys.stdout.encoding? >>>>>>>> > >>>>>>>> > Kent >>>>>>>> > >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> ------------------------------ >>>> >>>> _______________________________________________ >>>> Tutor maillist - Tutor@python.org >>>> http://mail.python.org/mailman/listinfo/tutor >>>> >>>> >>>> _______________________________________________ >>>> Tutor maillist - Tutor@python.org >>>> http://mail.python.org/mailman/listinfo/tutor >>>> >>>> >>> >> ------------------------------ >> >> _______________________________________________ >> Tutor maillist - Tutor@python.org >> http://mail.python.org/mailman/listinfo/tutor >> >> >> _______________________________________________ >> Tutor maillist - Tutor@python.org >> http://mail.python.org/mailman/listinfo/tutor >> >> >
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor