public inbox for gentoo-python@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-python] recent trend of django-foo tests
@ 2013-05-20  9:05 IAN DELANEY
  2013-05-20  9:18 ` Nikolaj Sjujskij
  0 siblings, 1 reply; 8+ messages in thread
From: IAN DELANEY @ 2013-05-20  9:05 UTC (permalink / raw
  To: idella4, gentoo-python


Am generally reluctant to enter things here, however this issues
appears apt.  Recent versions of django-xxx packages' test suites  have
made a habit of falling over, which is no surprise in itself, but they
have a new cause.  They all expect to find a setting to SECRET_KEY
which is set in djang.conf.global_settings.

For  while I thought

"${PYTHON}" -c "from django.conf import \
global_settings;global_settings.SECRET_KEY='green'" ${test} 

did the trick but it seems that the ${test} after the import with -c "
" is discarded somehow and never actually run with the attempt to set 
SECRET_KEY='green'.  The output looks as if it was an effective run but
it's not the case.

How this came about, who knows.  The backtrace tells it's expecting a
hard coded entry in the installed global_settings.py.  django has some
other django specific mechanisms for running test suites and setting
settings. Anyone know at least one?  How about patching django itself
to include the setting? (That one I expect goes down like a lead
balloon.)


 
kind regards

Ian Delaney


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-20  9:05 [gentoo-python] recent trend of django-foo tests IAN DELANEY
@ 2013-05-20  9:18 ` Nikolaj Sjujskij
  2013-05-20 17:36   ` IAN DELANEY
  0 siblings, 1 reply; 8+ messages in thread
From: Nikolaj Sjujskij @ 2013-05-20  9:18 UTC (permalink / raw
  To: idella4, gentoo-python, IAN DELANEY

Den 2013-05-20 13:05:33 skrev IAN DELANEY <della5@iinet.com.au>:

>
> Am generally reluctant to enter things here, however this issues
> appears apt.  Recent versions of django-xxx packages' test suites  have
> made a habit of falling over, which is no surprise in itself, but they
> have a new cause.  They all expect to find a setting to SECRET_KEY
> which is set in djang.conf.global_settings.
>
> For  while I thought
>
> "${PYTHON}" -c "from django.conf import \
> global_settings;global_settings.SECRET_KEY='green'" ${test}
>
> did the trick but it seems that the ${test} after the import with -c "
> " is discarded somehow and never actually run with the attempt to set
> SECRET_KEY='green'.
  % python -h
    ...
-c cmd : program passed in as string (_terminates option list_)

So ${test} seems to be ignored or misinterpreted.


You could try creating ./global_settings.py in :

     from django.conf import global_settings
     global_settings.SECRET_KEY='green'

     print(global_settings)   # testing purposes!

Now:
  % python -c 'import global_settings'
<module 'django.conf.global_settings' from  
'/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-20  9:18 ` Nikolaj Sjujskij
@ 2013-05-20 17:36   ` IAN DELANEY
  2013-05-21  8:56     ` Nikolaj Sjujskij
  2013-05-30 19:34     ` Mike Gilbert
  0 siblings, 2 replies; 8+ messages in thread
From: IAN DELANEY @ 2013-05-20 17:36 UTC (permalink / raw
  To: gentoo-python

On Mon, 20 May 2013 13:18:53 +0400
"Nikolaj Sjujskij" <sterkrig@myopera.com> wrote:

> Den 2013-05-20 13:05:33 skrev IAN DELANEY <della5@iinet.com.au>:
> 
>     ...
> -c cmd : program passed in as string (_terminates option list_)
> 
> So ${test} seems to be ignored or misinterpreted.
> 
> 
> You could try creating ./global_settings.py in :
> 
>      from django.conf import global_settings
>      global_settings.SECRET_KEY='green'
> 
>      print(global_settings)   # testing purposes!
> 
> Now:
>   % python -c 'import global_settings'
> <module 'django.conf.global_settings' from  
> '/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>

Ja, tack tack for att forsoka, med nej. (Please add the grammatical
nice-ities to the vowel o).  I got a fix from #django on the second
attempt. I was close on the first attempt, so for the benefit of all, 

first export SECRET_KEY='green', followed by

-    "from django.conf import \
  global_settings;global_settings.SECRET_KEY='green'" ${test}
+    "from django.conf import \
  global_settings;global_settings.SECRET_KEY='$SECRET_KEY'" ${test}

and presto.

 * python2_7: running distutils-r1_run_phase python_test
 * test test_compiler.py passed under python2.7
 * test test_compressor.py passed under python2.7

another bug bites the dust.

-- 
kind regards

Ian Delaney


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-20 17:36   ` IAN DELANEY
@ 2013-05-21  8:56     ` Nikolaj Sjujskij
  2013-05-21 17:35       ` IAN DELANEY
  2013-05-30 19:34     ` Mike Gilbert
  1 sibling, 1 reply; 8+ messages in thread
From: Nikolaj Sjujskij @ 2013-05-21  8:56 UTC (permalink / raw
  To: gentoo-python, IAN DELANEY

Den 2013-05-20 20:37:53 skrev IAN DELANEY <della5@iinet.com.au>:

> On Mon, 20 May 2013 13:18:53 +0400
> "Nikolaj Sjujskij" <sterkrig@myopera.com> wrote:
>
>> Den 2013-05-20 13:05:33 skrev IAN DELANEY <della5@iinet.com.au>:
>>
>>     ...
>> -c cmd : program passed in as string (_terminates option list_)
>>
>> So ${test} seems to be ignored or misinterpreted.
>>
>>
>> You could try creating ./global_settings.py in :
>>
>>      from django.conf import global_settings
>>      global_settings.SECRET_KEY='green'
>>
>>      print(global_settings)   # testing purposes!
>>
>> Now:
>>   % python -c 'import global_settings'
>> <module 'django.conf.global_settings' from
>> '/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>
>
> Ja, tack tack for att forsoka, med nej. (Please add the grammatical
> nice-ities to the vowel o).
  I've got bad news for you: actually my native language is Russian :)

> I got a fix from #django on the second
> attempt. I was close on the first attempt, so for the benefit of all,
>
> first export SECRET_KEY='green', followed by
>
> -    "from django.conf import \
>   global_settings;global_settings.SECRET_KEY='green'" ${test}
> +    "from django.conf import \
>   global_settings;global_settings.SECRET_KEY='$SECRET_KEY'" ${test}
  I positively fail to see how that change could fix anything.

  % python global_settings.py
<module 'django.conf.global_settings' from  
'/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>

  % python -c 'import sys; print sys.platform' global_settings.py
linux2

> and presto.
>
>  * python2_7: running distutils-r1_run_phase python_test
>  * test test_compiler.py passed under python2.7
>  * test test_compressor.py passed under python2.7
> another bug bites the dust.
  Well, if that somehow had worked, it's all right, I guess.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-21 17:35       ` IAN DELANEY
@ 2013-05-21 10:42         ` Nikolaj Sjujskij
  0 siblings, 0 replies; 8+ messages in thread
From: Nikolaj Sjujskij @ 2013-05-21 10:42 UTC (permalink / raw
  To: gentoo-python, IAN DELANEY

Den 2013-05-21 21:35:24 skrev IAN DELANEY <della5@iinet.com.au>:

> On Tue, 21 May 2013 12:56:50 +0400
> "Nikolaj Sjujskij" <sterkrig@myopera.com> wrote:
>
>> Den 2013-05-20 20:37:53 skrev IAN DELANEY <della5@iinet.com.au>:
>>
>>> Ja, tack tack for att forsoka, med nej. (Please add the grammatical
>>> nice-ities to the vowel o).
>>   I've got bad news for you: actually my native language is Russian :)
>>
> Oh dear, more bad news, this isn't a good week.  Header read;
> "Den 2013-05-20 20:37:53 skrev"
> Den is 'the', skrev is wrote in swedish.
  Yep, my email client speaks Swedish :)

>>> I got a fix from #django on the second
>>> attempt. I was close on the first attempt, so for the benefit of
>>> all,
>>>
>>> first export SECRET_KEY='green', followed by
>>>
>>> -    "from django.conf import \
>>>   global_settings;global_settings.SECRET_KEY='green'" ${test}
>>> +    "from django.conf import \
>>>   global_settings;global_settings.SECRET_KEY='$SECRET_KEY'" ${test}
> well I'm open to an explanation too, but in brief, he said set the key
> in bash, then on a second attempt on re-reading my query more closely,
> he corrected it to the above.  An alternate was SECRET_KEY="green"
> python -c ..., that is pre-pending the setting of the secret key to the
> call to python, which should work if you try. I settled for the above.
  I mean, python should ignore (and it does for me) arguments after -c  
option, however you do that in bash:

  % python global_settings.py
<module 'django.conf.global_settings' from  
'/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>

  % python -c "print('$LANG')" global_settings.py
ru_RU.UTF-8

  I'm not sure you understand my code snippets correctly. I demonstrate how  
python ignores "global_settings.py" argument and doesn't run the script  
whose name was passed after `-c <python code>` option.

>>   I positively fail to see how that change could fix anything.
>>   % python global_settings.py
>> <module 'django.conf.global_settings' from
>> '/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>
>>
> I'm guessing here the manufactured global_settings.py could be used
> effectively, I'd have to go back and try some more to do so. But hey
> thx for the effort.
>>   % python -c 'import sys; print sys.platform' global_settings.py
>> linux2
>>
>>> and presto.
>>>
>>>  * python2_7: running distutils-r1_run_phase python_test
>>>  * test test_compiler.py passed under python2.7
>>>  * test test_compressor.py passed under python2.7
>>> another bug bites the dust.
>>   Well, if that somehow had worked, it's all right, I guess.
>>
> a good news snippet to offset the bad.  What can I say?
  I'm just pointing out that I for one can't understand what's happening  
there and why it seems to work while it shouldn't. Therefore it may break  
again unexpectedly, so just keep that in mind :)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-21  8:56     ` Nikolaj Sjujskij
@ 2013-05-21 17:35       ` IAN DELANEY
  2013-05-21 10:42         ` Nikolaj Sjujskij
  0 siblings, 1 reply; 8+ messages in thread
From: IAN DELANEY @ 2013-05-21 17:35 UTC (permalink / raw
  To: gentoo-python

On Tue, 21 May 2013 12:56:50 +0400
"Nikolaj Sjujskij" <sterkrig@myopera.com> wrote:

> Den 2013-05-20 20:37:53 skrev IAN DELANEY <della5@iinet.com.au>:
> 
> > Ja, tack tack for att forsoka, med nej. (Please add the grammatical
> > nice-ities to the vowel o).
>   I've got bad news for you: actually my native language is Russian :)
> 
Oh dear, more bad news, this isn't a good week.  Header read;
"Den 2013-05-20 20:37:53 skrev"
Den is 'the', skrev is wrote in swedish. 

> > I got a fix from #django on the second
> > attempt. I was close on the first attempt, so for the benefit of
> > all,
> >
> > first export SECRET_KEY='green', followed by
> >
> > -    "from django.conf import \
> >   global_settings;global_settings.SECRET_KEY='green'" ${test}
> > +    "from django.conf import \
> >   global_settings;global_settings.SECRET_KEY='$SECRET_KEY'" ${test}

well I'm open to an explanation too, but in brief, he said set the key
in bash, then on a second attempt on re-reading my query more closely,
he corrected it to the above.  An alternate was SECRET_KEY="green"
python -c ..., that is pre-pending the setting of the secret key to the
call to python, which should work if you try. I settled for the above.

>   I positively fail to see how that change could fix anything.
> 
>   % python global_settings.py
> <module 'django.conf.global_settings' from  
> '/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>
> 
I'm guessing here the manufactured global_settings.py could be used
effectively, I'd have to go back and try some more to do so. But hey
thx for the effort.

>   % python -c 'import sys; print sys.platform' global_settings.py
> linux2
> 
> > and presto.
> >
> >  * python2_7: running distutils-r1_run_phase python_test
> >  * test test_compiler.py passed under python2.7
> >  * test test_compressor.py passed under python2.7
> > another bug bites the dust.
>   Well, if that somehow had worked, it's all right, I guess.
> 
a good news snippet to offset the bad.  What can I say?



-- 
kind regards

Ian Delaney


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-20 17:36   ` IAN DELANEY
  2013-05-21  8:56     ` Nikolaj Sjujskij
@ 2013-05-30 19:34     ` Mike Gilbert
  2013-06-03  7:05       ` Arfrever Frehtes Taifersar Arahesis
  1 sibling, 1 reply; 8+ messages in thread
From: Mike Gilbert @ 2013-05-30 19:34 UTC (permalink / raw
  To: IAN DELANEY; +Cc: gentoo-python

On Mon, May 20, 2013 at 1:36 PM, IAN DELANEY <della5@iinet.com.au> wrote:
> On Mon, 20 May 2013 13:18:53 +0400
> "Nikolaj Sjujskij" <sterkrig@myopera.com> wrote:
>
>> Den 2013-05-20 13:05:33 skrev IAN DELANEY <della5@iinet.com.au>:
>>
>>     ...
>> -c cmd : program passed in as string (_terminates option list_)
>>
>> So ${test} seems to be ignored or misinterpreted.
>>
>>
>> You could try creating ./global_settings.py in :
>>
>>      from django.conf import global_settings
>>      global_settings.SECRET_KEY='green'
>>
>>      print(global_settings)   # testing purposes!
>>
>> Now:
>>   % python -c 'import global_settings'
>> <module 'django.conf.global_settings' from
>> '/usr/lib64/python2.7/site-packages/django/conf/global_settings.pyc'>
>
> Ja, tack tack for att forsoka, med nej. (Please add the grammatical
> nice-ities to the vowel o).  I got a fix from #django on the second
> attempt. I was close on the first attempt, so for the benefit of all,
>
> first export SECRET_KEY='green', followed by
>
> -    "from django.conf import \
>   global_settings;global_settings.SECRET_KEY='green'" ${test}
> +    "from django.conf import \
>   global_settings;global_settings.SECRET_KEY='$SECRET_KEY'" ${test}
>
> and presto.
>
>  * python2_7: running distutils-r1_run_phase python_test
>  * test test_compiler.py passed under python2.7
>  * test test_compressor.py passed under python2.7
>
> another bug bites the dust.
>

Ian:

You have NOT fixed a bug; rather you have masked one. As Nikolaj
indicates, python -c "code" foo.py does NOT run foo.py.

The change you have made causes the tests to be skipped entirely. A
message stating "tests passed" does not signify that anything was
actually run.

If you cannot figure this out, please remove python_test from any
ebuilds you have modified. At least that way we don't give the false
impression that the tests have actually passed.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-python] recent trend of django-foo tests
  2013-05-30 19:34     ` Mike Gilbert
@ 2013-06-03  7:05       ` Arfrever Frehtes Taifersar Arahesis
  0 siblings, 0 replies; 8+ messages in thread
From: Arfrever Frehtes Taifersar Arahesis @ 2013-06-03  7:05 UTC (permalink / raw
  To: gentoo-python

[-- Attachment #1: Type: Text/Plain, Size: 2059 bytes --]

2013-05-30 21:34 Mike Gilbert napisał(a):
> python -c "code" foo.py does NOT run foo.py.

$ cat my_script
#!/usr/bin/python

import sys
import unittest

class SomeTests(unittest.TestCase):
    def test_something(self):
        self.assertTrue(sys.something > 0)

if __name__ == "__main__":
    unittest.main(verbosity=2)
$ diff -u my_script my_module.py
$ python my_script
test_something (__main__.SomeTests) ... ERROR

======================================================================
ERROR: test_something (__main__.SomeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "my_script", line 8, in test_something
    self.assertTrue(sys.something > 0)
AttributeError: 'module' object has no attribute 'something'

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (errors=1)
$ python -m my_module
test_something (__main__.SomeTests) ... ERROR

======================================================================
ERROR: test_something (__main__.SomeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./my_module.py", line 8, in test_something
    self.assertTrue(sys.something > 0)
AttributeError: 'module' object has no attribute 'something'

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (errors=1)
$ python -c 'import runpy, sys; sys.something=1; runpy.run_path("my_script", run_name="__main__")'
test_something (__main__.SomeTests) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
$ python -c 'import runpy, sys; sys.something=1; runpy.run_module("my_module", run_name="__main__", alter_sys=True)'
test_something (__main__.SomeTests) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
$

:)

--
Arfrever Frehtes Taifersar Arahesis

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-06-03  7:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-20  9:05 [gentoo-python] recent trend of django-foo tests IAN DELANEY
2013-05-20  9:18 ` Nikolaj Sjujskij
2013-05-20 17:36   ` IAN DELANEY
2013-05-21  8:56     ` Nikolaj Sjujskij
2013-05-21 17:35       ` IAN DELANEY
2013-05-21 10:42         ` Nikolaj Sjujskij
2013-05-30 19:34     ` Mike Gilbert
2013-06-03  7:05       ` Arfrever Frehtes Taifersar Arahesis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox