Uhm, that is already covered by 'gearbox tgshell', when you run a script
from the tgshell it already provides the context.


On Wed, Jan 14, 2015 at 5:22 PM, Moritz Schlarb <[email protected]>
wrote:

> Hi Alessandro,
>
> maybe a bit too late, but could that also be used to initialize a fake
> context when running some part of a TG2 project from outside of a web
> application?
> Like when there is a script to do some maintenance stuff that imports a
> file that imports ugettext, which will fail the same way as the OP posted.
>
> Regards,
> Moritz
>
> On 14.01.2015 15:27, Alessandro Molina wrote:
> > I made a change in TG2.3.5 which will make easier to perform tests on
> > things outside controllers and wrote a short documentation on writing
> tests
> > with TurboGears:
> > http://turbogears.readthedocs.org/en/development/turbogears/testing.html
> >
> > This should greatly help people with most common issues with testing
> > TurboGears apps :)
> >
> > On Wed, Jan 7, 2015 at 7:12 PM, Alessandro Molina <
> > [email protected]> wrote:
> >
> >> This is something I have been thinking of for a bunch of weeks.
> >>
> >> The two options are:
> >>
> >>  1) Make possible to pass a base_url optional argument to tg.url which
> is
> >> used instead of the request for URL generation. This is a specific
> solution
> >> but less invasive.
> >>  2) Make a reusable method that initializes a fake TurboGears Context so
> >> that all request related features can work even outside a request. This
> is
> >> the most flexible solution but might actually create huge bugs and
> issues
> >> when misused.
> >>
> >> In the mean time you can probably achieve the same result by doing the
> >> same that ``tgshell`` command does, just create a TurboGears webapp (you
> >> should have it already in your test suite) and call
> >> ``test_app.get('/_test_vars')`` this will create a context that is
> >> permanently available for the whole process lifetime and so you can then
> >> call any context based function.
> >>
> >>
> >>
> >> On Tue, Dec 23, 2014 at 11:57 AM, lebouquetin <[email protected]>
> >> wrote:
> >>
> >>> Hi all,
> >>>
> >>> I have developed a serialization class which is based on tg.url(). When
> >>> trying to unit-test it using nose, I get the following error:
> >>>
> >>> ======================================================================
> >>> ERROR:
> >>>
> tracim.tests.library.test_serializers.TestSerializers.test_serialize_Content_comment_THREAD
> >>> ----------------------------------------------------------------------
> >>> Traceback (most recent call last):
> >>>   File
> >>>
> "/home/damien/proj/tracim-app/pod/tg2env/lib/python3.2/site-packages/nose/case.py",
> >>> line 198, in runTest
> >>>     self.test(*self.arg)
> >>>   File
> >>>
> "/home/damien/proj/tracim-app/pod/tracim/tracim/tests/library/test_serializers.py",
> >>> line 117, in test_serialize_Content_comment_THREAD
> >>>     res = Context(CTX.THREAD).toDict(obj)
> >>>   File
> >>> "/home/damien/proj/tracim-app/pod/tracim/tracim/model/serializers.py",
> line
> >>> 191, in toDict
> >>>     result = self.toDictSpecific(serializableObject)
> >>>   File
> >>> "/home/damien/proj/tracim-app/pod/tracim/tracim/model/serializers.py",
> line
> >>> 205, in toDictSpecific
> >>>     result = converter_function(serializableObject, self) # process the
> >>> object with the given serializer
> >>>   File
> >>> "/home/damien/proj/tracim-app/pod/tracim/tracim/model/serializers.py",
> line
> >>> 409, in serialize_node_for_page
> >>>     'delete':
> >>>
> context.url('/workspaces/{wid}/folders/{fid}/{ctype}/{cid}/comments/{commentid}/put_delete'.format(wid
> >>> = item.workspace_id, fid=item.parent.parent_id,
> ctype=item.parent.type+'s',
> >>> cid=item.parent.content_id, commentid=item.content_id))
> >>>   File
> >>> "/home/damien/proj/tracim-app/pod/tracim/tracim/model/serializers.py",
> line
> >>> 142, in url
> >>>     url = tg.url(base_url, params)
> >>>   File
> >>>
> "/home/damien/proj/tracim-app/pod/tg2env/lib/python3.2/site-packages/TurboGears2-2.3.4-py3.2.egg/tg/controllers/util.py",
> >>> line 84, in url
> >>>     req = tg.request._current_obj()
> >>>   File
> >>>
> "/home/damien/proj/tracim-app/pod/tg2env/lib/python3.2/site-packages/TurboGears2-2.3.4-py3.2.egg/tg/request_local.py",
> >>> line 171, in _current_obj
> >>>     return getattr(context, self.name)
> >>>   File
> >>>
> "/home/damien/proj/tracim-app/pod/tg2env/lib/python3.2/site-packages/TurboGears2-2.3.4-py3.2.egg/tg/support/objectproxy.py",
> >>> line 19, in __getattr__
> >>>     return getattr(self._current_obj(), attr)
> >>>   File
> >>>
> "/home/damien/proj/tracim-app/pod/tg2env/lib/python3.2/site-packages/TurboGears2-2.3.4-py3.2.egg/tg/support/registry.py",
> >>> line 69, in _current_obj
> >>>     'thread' % self.____name__)
> >>> *nose.proxy.TypeError: No object (name: context) has been registered
> for
> >>> this thread*
> >>>
> >>> Question is : how to use tg.url() in unit-tests (without to go through
> >>> http-like class).
> >>> Should I call load_app() ?
> >>>
> >>> Thank's
> >>>
> >>>
> >>> Damien
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google
> Groups
> >>> "TurboGears" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send
> an
> >>> email to [email protected].
> >>> To post to this group, send email to [email protected].
> >>> Visit this group at http://groups.google.com/group/turbogears.
> >>> For more options, visit https://groups.google.com/d/optout.
> >>>
> >>
> >>
> >
>
> --
> Moritz Schlarb
>
> --
> You received this message because you are subscribed to the Google Groups
> "TurboGears" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/turbogears.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/turbogears.
For more options, visit https://groups.google.com/d/optout.

Reply via email to