Changeset 2040

Show
Ignore:
Timestamp:
06/17/09 14:56:26 (9 months ago)
Author:
JensDiemer
Message:

use django_tools.middlewares.ThreadLocal? in other parts (muchly in UpdateInfoBaseModel?), too. Make some thing very easy. So we must not put the request object in every "save", "get_or_create" call. And we have mutch less problems in unittests.

Location:
branches/0.9/pylucid_project
Files:
9 modified

Legend:

Unmodified
Added
Removed
  • branches/0.9/pylucid_project/apps/pylucid/admin.py

    r2038 r2040  
    2525 
    2626from pylucid import models 
    27 from pylucid.system.auto_model_info import UpdateInfoBaseAdmin 
    2827 
    2928#_____________________________________________________________________________ 
     
    5251 
    5352 
    54 class PageTreeAdmin(UpdateInfoBaseAdmin, VersionAdmin): 
     53class PageTreeAdmin(VersionAdmin): 
    5554    #prepopulated_fields = {"slug": ("title",)}     
    5655 
     
    7372 
    7473 
    75 class PageMetaAdmin(UpdateInfoBaseAdmin, VersionAdmin): 
     74class PageMetaAdmin(VersionAdmin): 
    7675    list_display = ("title_or_slug", "get_absolute_url", "get_site", "lastupdatetime", "lastupdateby",) 
    7776    list_display_links = ("title_or_slug", "get_absolute_url") 
     
    8382 
    8483 
    85 class PageContentAdmin(UpdateInfoBaseAdmin, VersionAdmin): 
     84class PageContentAdmin(VersionAdmin): 
    8685    list_display = ("title_or_slug", "get_absolute_url", "get_site", "lastupdatetime", "lastupdateby",) 
    8786    list_display_links = ("title_or_slug", "get_absolute_url") 
     
    9392 
    9493 
    95 class PluginPageAdmin(UpdateInfoBaseAdmin, VersionAdmin): 
     94class PluginPageAdmin(VersionAdmin): 
    9695    list_display = ( 
    9796        "get_plugin_name", "get_absolute_url", "app_label", "get_site", "lastupdatetime", "lastupdateby", 
     
    105104 
    106105 
    107 class DesignAdmin(UpdateInfoBaseAdmin, VersionAdmin):     
     106class DesignAdmin(VersionAdmin):     
    108107    list_display = ("name", "template", "lastupdatetime", "lastupdateby") 
    109108    list_display_links = ("name",) 
     
    114113 
    115114 
    116 class EditableHtmlHeadFileAdmin(UpdateInfoBaseAdmin, VersionAdmin): 
     115class EditableHtmlHeadFileAdmin(VersionAdmin): 
    117116    list_display = ("filepath", "description", "lastupdatetime", "lastupdateby") 
    118117    list_display_links = ("filepath", "description") 
     
    122121 
    123122 
    124 class UserProfileAdmin(UpdateInfoBaseAdmin, VersionAdmin): 
     123class UserProfileAdmin(VersionAdmin): 
    125124    list_display = ("user", "site_info", "lastupdatetime", "lastupdateby") 
    126125    list_display_links = ("user",) 
  • branches/0.9/pylucid_project/apps/pylucid/models.py

    r2038 r2040  
    4040from pylucid_project.utils import crypt 
    4141 
    42 from pylucid.system.auto_model_info import UpdateInfoBaseModel, UpdateInfoBaseModelManager 
     42from pylucid.system.auto_model_info import UpdateInfoBaseModel 
    4343from pylucid.system import headfile 
    44  
    45  
    46 class PageTreeManager(UpdateInfoBaseModelManager): 
     44from pylucid.shortcuts import user_message_or_warn 
     45 
     46 
     47class PageTreeManager(models.Manager): 
    4748    """ 
    4849    Manager class for PageTree model 
    4950     
    50     inherited from UpdateInfoBaseModelManager: 
     51    inherited from models.Manager: 
    5152        get_or_create() method, witch expected a request object as the first argument. 
    5253    """ 
     
    352353 
    353354 
    354 class PageContentManager(UpdateInfoBaseModelManager): 
     355class PageContentManager(models.Manager): 
    355356    """ 
    356357    Manager class for PageContent model 
    357358     
    358     inherited from UpdateInfoBaseModelManager: 
     359    inherited from models.Manager: 
    359360        get_or_create() method, witch expected a request object as the first argument. 
    360361    """     
     
    434435#------------------------------------------------------------------------------ 
    435436 
     437class DesignManager(models.Manager): 
     438    pass 
     439 
    436440class Design(UpdateInfoBaseModel): 
    437441    """ 
     
    444448        lastupdateby   -> ForeignKey to user who has edited this entry 
    445449    """ 
     450    objects = DesignManager() 
     451     
    446452    site = models.ManyToManyField(Site, default=[settings.SITE_ID]) 
    447453    on_site = CurrentSiteManager() 
     
    468474#------------------------------------------------------------------------------ 
    469475 
    470 class EditableHtmlHeadFileManager(UpdateInfoBaseModelManager): 
     476class EditableHtmlHeadFileManager(models.Manager): 
    471477    def get_HeadfileLink(self, filename): 
    472478        """ 
     
    518524            f.close() 
    519525        except Exception, err: 
    520             warnings.warn("Can't cache EditableHtmlHeadFile into %r: %s" % (cachepath, err)) 
     526            user_message_or_warn("Can't cache EditableHtmlHeadFile into %r: %s" % (cachepath, err)) 
    521527        else: 
    522528            if settings.DEBUG: 
    523                 warnings.warn("EditableHtmlHeadFile cached successful into: %r" % cachepath) 
     529                user_message_or_warn("EditableHtmlHeadFile cached successful into: %r" % cachepath) 
    524530 
    525531    def get_absolute_url(self): 
     
    591597    ) 
    592598     
    593     def set_sha_login_password(self, request, raw_password): 
     599    def set_sha_login_password(self, raw_password): 
    594600        """ 
    595601        create salt+checksum for JS-SHA-Login. 
     
    600606        self.sha_login_salt = salt 
    601607        self.sha_login_checksum = sha_checksum 
    602         request.user.message_set.create( 
    603             message="SHA Login salt+checksum created for user '%s'." % self.user 
    604         ) 
     608        user_message_or_warn("SHA Login salt+checksum created for user '%s'." % self.user) 
    605609 
    606610    def __unicode__(self): 
     
    622626    """ signal handler: creating user profile, after a new user created. """ 
    623627    user = kwargs["instance"] 
    624     request = ThreadLocal.get_current_request() 
    625      
    626     userprofile, created = UserProfile.objects.get_or_create(request, user=user) 
     628             
     629    userprofile, created = UserProfile.objects.get_or_create(user=user) 
    627630    if created: 
    628         request.user.message_set.create(message="UserProfile entry for user '%s' created." % user) 
    629      
     631        user_message_or_warn("UserProfile entry for user '%s' created." % user) 
     632             
    630633        if not user.is_superuser: # Info: superuser can automaticly access all sites 
    631634            site = Site.objects.get_current() 
    632635            userprofile.site.add(site) 
    633             request.user.message_set.create( 
    634                 message="Add site '%s' to '%s' UserProfile." % (site.name, user) 
    635             )             
     636            user_message_or_warn("Add site '%s' to '%s' UserProfile." % (site.name, user))             
    636637 
    637638signals.post_save.connect(create_user_profile, sender=User) 
     
    660661     
    661662    user_profile = user.get_profile() 
    662     request = ThreadLocal.get_current_request() 
    663663 
    664664    # Save the password for the JS-SHA-Login: 
    665     user_profile.set_sha_login_password(request, raw_password) 
    666     user_profile.save(request) 
     665    user_profile.set_sha_login_password(raw_password) 
     666    user_profile.save() 
    667667 
    668668 
  • branches/0.9/pylucid_project/apps/pylucid/shortcuts.py

    r2037 r2040  
    1818""" 
    1919 
     20import warnings 
     21 
    2022from django import http 
    2123from django.conf import settings 
     24from django.contrib.auth.models import User 
    2225from django.shortcuts import render_to_response 
    2326from django.template.loader import render_to_string 
     27 
     28from django_tools.middlewares import ThreadLocal 
     29 
    2430 
    2531def render_pylucid_response(request, template_name, context, **kwargs): 
     
    5965        # the PyLucid context middleware pylucid_plugin.extrahead.context_middleware 
    6066        return response_content 
     67 
     68 
     69 
     70 
     71 
     72 
     73def user_message_or_warn(msg): 
     74    """ Display a message with user.message_set.create if available or use warnings.warn """ 
     75    user = ThreadLocal.get_current_user() 
     76    if user and isinstance(user, User): 
     77        user.message_set.create(message=msg) 
     78    else: 
     79        warnings.warn(msg) 
     80 
     81 
     82def page_msg_or_warn(msg): 
     83    """ Display a message with request.page_msg if available or use warnings.warn """ 
     84    request = ThreadLocal.get_current_request() 
     85    if request: 
     86        request.page_msg(msg) 
     87    else: 
     88        warnings.warn(msg) 
  • branches/0.9/pylucid_project/apps/pylucid/system/auto_model_info.py

    r1971 r2040  
    1919 
    2020import sys 
     21import warnings 
    2122 
    2223from django.db import models 
     
    2627from django.db import transaction, IntegrityError 
    2728 
    28  
    29 class UpdateInfoBaseAdmin(admin.ModelAdmin): 
    30     """ 
    31     Base class for all models witch use UpdateInfoBaseModel(): 
    32     The save method need the request object as the first argument (For automatic update user ForeignKey). 
    33     Add request object to save() methods witch used in the django admin site. 
    34     See also: http://code.djangoproject.com/wiki/CookBookNewformsAdminAndUser 
    35     """ 
    36     def save_model(self, request, obj, form, change):  
    37         instance = form.save(commit=False) 
    38         instance.save(request) 
    39         form.save_m2m() 
    40         return instance 
    41  
    42 #    def save_formset(self, request, form, formset, change):  
    43 #        def set_user(instance): 
    44 #            instance.user = request.user 
    45 #            instance.save() 
    46 # 
    47 #        if formset.model == Comment: 
    48 #            instances = formset.save(commit=False) 
    49 #            map(set_user, instances) 
    50 #            formset.save_m2m() 
    51 #            return instances 
    52 #        else: 
    53 #            return formset.save() 
    54  
    55 #------------------------------------------------------------------------------ 
    56  
    57 def _get_request_from_args(args): 
    58     """ 
    59     Helper function for getting the request object from the method arguments. 
    60     Add a better traceback message if not requets object are in the method arguments. 
    61      
    62     Used in UpdateInfoBaseModelManager().get_or_create() and UpdateInfoBaseModel().save() 
    63     returns the request object and the args without the request object. 
    64     """ 
    65     args = list(args) # convert tuple into list, so we can pop the first argument out. 
    66           
    67     try: 
    68         request = args.pop(0) 
    69     except IndexError, err: 
    70         # insert more information into the traceback 
    71         etype, evalue, etb = sys.exc_info() 
    72         # FIXME: How can we insert the original called method name? 
    73         evalue = etype('Method needs request object as first argument!') 
    74         raise etype, evalue, etb    
    75      
    76     assert isinstance(request, HttpRequest), \ 
    77         "First argument must be the request object! (It's type: %s)" % type(request) 
    78      
    79     assert isinstance(request.user, User) 
    80      
    81     return request, args 
    82  
    83  
    84  
    85 class UpdateInfoBaseModelManager(models.Manager): 
    86     def get_or_create(self, *args, **kwargs): 
    87         """ 
    88         Same as django.db.models.query.QuerySet().get_or_create(), but here the first 
    89         method argument must be the request object for passing it to the save() method. 
    90         (For automatic update user ForeignKey in all UpdateInfoBaseModel's)  
    91         """ 
    92         assert kwargs, \ 
    93                 'get_or_create() must be passed at least one keyword argument' 
    94          
    95         # pop the request object from the arguments, insert a helpfull information in  
    96         # the traceback, if the request object is not the first argument 
    97         request, args = _get_request_from_args(args) 
    98          
    99         defaults = kwargs.pop('defaults', {}) 
    100          
    101         try: 
    102             return self.get(**kwargs), False 
    103         except self.model.DoesNotExist: 
    104             try: 
    105                 params = dict([(k, v) for k, v in kwargs.items() if '__' not in k]) 
    106                 params.update(defaults) 
    107                 obj = self.model(**params) 
    108                 sid = transaction.savepoint() 
    109                 obj.save(request, force_insert=True) 
    110                 transaction.savepoint_commit(sid) 
    111                 return obj, True 
    112             except IntegrityError, e: 
    113                 transaction.savepoint_rollback(sid) 
    114                 try: 
    115                     return self.get(**kwargs), False 
    116                 except self.model.DoesNotExist: 
    117                     raise e 
     29from django_tools.middlewares import ThreadLocal 
    11830 
    11931 
     
    12537     
    12638    Important: Every own objects manager should be inherit from UpdateInfoBaseModelManager! 
    127     """ 
    128     objects = UpdateInfoBaseModelManager() 
    129      
     39    """     
    13040    createtime = models.DateTimeField(auto_now_add=True, help_text="Create time",) 
    13141    lastupdatetime = models.DateTimeField(auto_now=True, help_text="Time of the last change.",) 
     42     
    13243    createby = models.ForeignKey(User, editable=False, related_name="%(class)s_createby", 
     44        null=True, blank=True, # <- If the model used outsite a real request (e.g. unittest, db shell) 
    13345        help_text="User how create the current page.",) 
    13446    lastupdateby = models.ForeignKey(User, editable=False, related_name="%(class)s_lastupdateby", 
     47        null=True, blank=True, # <- If the model used outsite a real request (e.g. unittest, db shell) 
    13548        help_text="User as last edit the current page.",) 
    13649     
     
    13952        Automatic update createby and lastupdateby attributes with the request object witch must be 
    14053        the first argument. 
    141         """ 
    142         # pop the request object from the arguments, insert a helpfull information in  
    143         # the traceback, if the request object is not the first argument: 
    144         request, args = _get_request_from_args(args) 
     54        """       
     55        current_user = ThreadLocal.get_current_user() 
    14556         
    146         try: 
    147             current_user = request.user 
    148         except AttributeError, err: 
    149             # insert more information into the traceback 
    150             etype, evalue, etb = sys.exc_info() 
    151             # FIXME: How can we insert the original called method name? 
    152             evalue = etype('request object has no user object!? (Original error: %s)' % err) 
    153             raise etype, evalue, etb 
    154          
    155         if self.pk == None or kwargs.get("force_insert", False): # New model entry 
    156             self.createby = current_user 
    157         self.lastupdateby = current_user 
     57        if current_user and isinstance(current_user, User): 
     58            if self.pk == None or kwargs.get("force_insert", False): # New model entry 
     59                self.createby = current_user 
     60            self.lastupdateby = current_user 
     61             
    15862        return super(UpdateInfoBaseModel, self).save(*args, **kwargs) 
    15963     
  • branches/0.9/pylucid_project/apps/pylucid_update/views.py

    r2034 r2040  
    4343        sha_login_salt = old_entry.salt 
    4444         
    45         userprofile, created = UserProfile.objects.get_or_create(request, 
     45        userprofile, created = UserProfile.objects.get_or_create( 
    4646            user = user, 
    4747            defaults = { 
     
    8181    cssfiles = {} 
    8282    for style in Style08.objects.all(): 
    83         new_staticfile, created = EditableHtmlHeadFile.objects.get_or_create(request, 
     83        new_staticfile, created = EditableHtmlHeadFile.objects.get_or_create( 
    8484            filepath = settings.SITE_TEMPLATE_PREFIX + style.name + ".css", 
    8585            defaults = { 
     
    119119                new_design_name = "%s + %s" % (old_page.template.name, old_page.style.name) 
    120120                 
    121             design, created = Design.objects.get_or_create(request, 
     121            design, created = Design.objects.get_or_create( 
    122122                name = new_design_name, 
    123123                defaults = { 
     
    143143            parent = page_dict[old_page.parent.id] 
    144144 
    145         tree_entry, created = PageTree.objects.get_or_create(request, 
     145        tree_entry, created = PageTree.objects.get_or_create( 
    146146            site = site, 
    147147            slug = old_page.shortcut, 
     
    163163        ) 
    164164        if created: 
    165             tree_entry.save(request) 
     165            tree_entry.save() 
    166166            out.write("PageTree entry '%s' created." % tree_entry.slug) 
    167167        else: 
     
    173173        # create/get PageMeta entry 
    174174         
    175         pagemeta_entry, created = PageMeta.objects.get_or_create(request, 
     175        pagemeta_entry, created = PageMeta.objects.get_or_create( 
    176176            page = tree_entry, 
    177177            lang = language, 
     
    189189        ) 
    190190        if created: 
    191             pagemeta_entry.save(request) 
     191            pagemeta_entry.save() 
    192192            out.write("PageMeta entry '%s' - '%s' created." % (language, tree_entry.slug)) 
    193193        else: 
     
    197197        # create/get PageContent entry 
    198198 
    199         content_entry, created = PageContent.objects.get_or_create(request, 
     199        content_entry, created = PageContent.objects.get_or_create( 
    200200            page = tree_entry, 
    201201            lang = language, 
     
    212212        ) 
    213213        if created: 
    214             content_entry.save(request) 
     214            content_entry.save() 
    215215            out.write("PageContent entry '%s' - '%s' created." % (language, tree_entry.slug)) 
    216216        else: 
     
    374374            content = additional_styles + content 
    375375            style.content = content 
    376             style.save(request) 
     376            style.save() 
    377377            out.write("additional styles inserted.")         
    378378     
  • branches/0.9/pylucid_project/pylucid_plugins/page_admin/views.py

    r2037 r2040  
    4545            new_content = edit_page_form.cleaned_data["content"] 
    4646            pagecontent_instance.content = new_content 
    47             pagecontent_instance.save(request) 
     47            pagecontent_instance.save() 
    4848            request.page_msg.successful(_("Page content updated.")) 
    4949            return HttpResponseRedirect(request.path) 
  • branches/0.9/pylucid_project/pylucid_plugins/redirect/admin.py

    r1965 r2040  
    1919from django.contrib import admin 
    2020 
    21 from pylucid.system.auto_model_info import UpdateInfoBaseAdmin 
    22  
    2321from redirect.models import RedirectModel 
    2422 
    2523#------------------------------------------------------------------------------ 
    2624 
    27 class RedirectModelAdmin(UpdateInfoBaseAdmin): 
     25class RedirectModelAdmin(admin.ModelAdmin): 
    2826    pass 
    2927    #prepopulated_fields = {"slug": ("title",)}     
  • branches/0.9/pylucid_project/tests/test_tools/basetest.py

    r2010 r2040  
    9696         
    9797    #------------------------------------------------------------------------- 
     98     
     99    def login(self, usertype): 
     100        """ 
     101        Login test user. 
     102        Add him to the site, otherwise he can't login ;) 
     103        """ 
     104        site = Site.objects.get_current() 
     105        user = self._get_user(usertype="normal") 
     106        userprofile = user.get_profile() 
     107         
     108        if not site in userprofile.site.all(): 
     109            print "Info: Add user to site %s" % site 
     110            userprofile.site.add(site) 
     111         
     112        ok = self.client.login(username=self.TEST_USERS[usertype]["username"], 
     113                               password=self.TEST_USERS[usertype]["password"]) 
     114        self.failUnless(ok, "Can't login test user '%s'!" % usertype) 
     115        return user 
    98116 
  • branches/0.9/pylucid_project/tests/test_tools/pylucid_test_data.py

    r2026 r2040  
    77    os.environ['DJANGO_SETTINGS_MODULE'] = "pylucid_project.settings" 
    88 
    9 from django.http import HttpRequest 
     9#from django.http import HttpRequest 
    1010from django.contrib.auth.models import User#, AnonymousUser 
    1111from django.contrib.sites.models import Site# 
     
    1515 
    1616from pylucid.models import PageTree, PageMeta, PageContent, PluginPage, Design, \ 
    17                                             EditableHtmlHeadFile, Language 
     17                                            EditableHtmlHeadFile, Language, UserProfile 
    1818 
    1919SITEINFO_TAG = "***unittest siteinfo tag***" 
     
    200200def create_testusers(verbosity): 
    201201    """ 
    202     Create all available testusers. 
     202    Create all available testusers and UserProfiles 
    203203    """ 
    204204    def create_user(verbosity, username, password, email, is_staff, is_superuser): 
     
    218218        if verbosity>=2: 
    219219            print "Test user %r created." % user 
     220        return user 
    220221         
    221222    for usertype, userdata in TEST_USERS.iteritems(): 
    222         create_user(verbosity, **userdata) 
     223        user = create_user(verbosity, **userdata) 
    223224 
    224225 
     
    246247 
    247248 
    248 def create_headfiles(verbosity, headfile_dict, site, request): 
     249def create_headfiles(verbosity, headfile_dict, site): 
    249250    headfile_map = {} 
    250251    for filepath, data in headfile_dict.iteritems(): 
     
    254255            content = data["content"], 
    255256        ) 
    256         headfile.save(request) 
     257        headfile.save() 
    257258        headfile.site.add(site) 
    258259        if verbosity>=2: 
     
    263264 
    264265 
    265 def create_design(verbosity, design_dict, request, site, template_map, headfile_map):    
     266def create_design(verbosity, design_dict, site, template_map, headfile_map):    
    266267    design_map = {} 
    267268    for design_name, data in design_dict.iteritems(): 
    268269        template_name = data["template_name"] 
    269270        assert template_name in template_map 
    270         design, created = Design.objects.get_or_create(request, 
     271        design, created = Design.objects.get_or_create( 
    271272            name = design_name, defaults = {"template": template_name,} 
    272273        ) 
    273274        if created: 
    274             design.save(request) 
     275            design.save() 
    275276            design.site.add(site) 
    276277            if verbosity>=2: 
     
    282283                if verbosity>=2: 
    283284                    print("Add headfile '%s'." % headfile) 
    284             design.save(request) 
     285            design.save() 
    285286        elif verbosity>=2: 
    286287                print("Design '%s' exist." % design_name) 
     
    298299 
    299300 
    300 def create_pages(verbosity, request, design_map, site, pages, parent=None): 
     301def create_pages(verbosity, design_map, site, pages, parent=None): 
    301302    design = design_map["unittest_design"] 
    302303    for page_data in pages: 
     
    309310            page_type = PageTree.PAGE_TYPE 
    310311         
    311         tree_entry, created = PageTree.objects.get_or_create(request, 
     312        tree_entry, created = PageTree.objects.get_or_create( 
    312313            site=site, slug=slug, parent=parent, 
    313314            defaults={ 
     
    319320        if verbosity>=2: 
    320321            if created: 
    321                 #tree_entry.save(request) 
     322                #tree_entry.save() 
    322323                print("PageTree '%s' created." % url) 
    323324            else: 
     
    330331                keys = ("title", "description", "keywords") 
    331332            ) 
    332             pagemeta_entry, created = PageMeta.objects.get_or_create(request, 
     333            pagemeta_entry, created = PageMeta.objects.get_or_create( 
    333334                page = tree_entry, lang = language, 
    334335                defaults = default_dict 
     
    336337            if verbosity>=2: 
    337338                if created: 
    338                     #pagemeta_entry.save(request) 
     339                    #pagemeta_entry.save() 
    339340                    print("PageMeta '%s' - '%s' created." % (language, tree_entry.slug)) 
    340341                else: 
     
    343344            if tree_entry.type == PageTree.PLUGIN_TYPE: 
    344345                # It's a plugin page 
    345                 pluginpage, created = PluginPage.objects.get_or_create(request, 
     346                pluginpage, created = PluginPage.objects.get_or_create( 
    346347                    page = tree_entry, 
    347348                    lang = language, 
     
    359360                ) 
    360361                default_dict["markup"] = PageContent.MARKUP_CREOLE 
    361                 content_entry, created = PageContent.objects.get_or_create(request, 
     362                content_entry, created = PageContent.objects.get_or_create( 
    362363                    page = tree_entry, 
    363364                    lang = language, 
     
    366367                ) 
    367368                content_entry.content = content_entry.content.replace(SITEINFO_TAG, site.name) 
    368                 content_entry.save(request) 
     369                content_entry.save() 
    369370                if verbosity>=2: 
    370371                    if created: 
     
    376377            if verbosity>=2: 
    377378                print "--- create sub pages ---" 
    378             create_pages(verbosity, request, design_map, site, 
     379            create_pages(verbosity, design_map, site, 
    379380                pages=page_data["sub-pages"], parent=tree_entry 
    380381            ) 
     
    386387 
    387388 
    388 def create_test_data(request, site, verbosity): 
     389def create_test_data(site, verbosity): 
    389390    template_map = create_templates(verbosity, TEST_TEMPLATES, site) 
    390     headfile_map = create_headfiles(verbosity, TEST_HEADFILES, site, request) 
    391     design_map = create_design(verbosity, TEST_DESIGNS, request, site, template_map, headfile_map) 
     391    headfile_map = create_headfiles(verbosity, TEST_HEADFILES, site) 
     392    design_map = create_design(verbosity, TEST_DESIGNS, site, template_map, headfile_map) 
    392393     
    393394    # Create PageTree, PageMeta and PageContent in every test language 
    394     create_pages(verbosity, request, design_map, site, pages=TEST_PAGES) 
    395      
    396      
    397 def get_fake_request(usertype): 
    398     """ Create a fake HttpRequest instance. Needed in some UpdateInfoBaseModel save() methods """ 
    399     request = HttpRequest() 
    400     request.user = get_user(usertype=usertype) 
    401     return request 
     395    create_pages(verbosity, design_map, site, pages=TEST_PAGES) 
     396     
     397     
     398#def get_fake_request(usertype): 
     399#    """ Create a fake HttpRequest instance. Needed in some UpdateInfoBaseModel save() methods """ 
     400#    request = HttpRequest() 
     401#    request.user = get_user(usertype=usertype) 
     402#    return request 
    402403 
    403404 
     
    406407    if verbosity>=2: 
    407408        print "\nCreate complete test data for 'running' PyLucid" 
    408          
     409               
    409410    create_testusers(verbosity) 
    410411     
    411     request = get_fake_request(usertype="superuser") 
     412#    request = get_fake_request(usertype="superuser") 
    412413     
    413414    for site in TestSites(verbosity): 
     
    416417            print("create test data for site: %r" % site) 
    417418             
    418         create_test_data(request, site, verbosity) 
     419        create_test_data(site, verbosity) 
    419420 
    420421    if verbosity: