organize format and import
authorymh <ymh.work@gmail.com>
Wed, 20 Apr 2011 00:55:58 +0200
changeset 63 93325a5d61f0
parent 62 27253368f045
child 64 d0d63c677c1f
organize format and import
.pydevproject
src/ldt/distribute_setup.py
src/ldt/ldt/api/ldt/handlers.py
src/ldt/ldt/auth/views.py
src/ldt/ldt/core/handlers/modwsgi.py
src/ldt/ldt/core/models.py
src/ldt/ldt/core/views.py
src/ldt/ldt/ldt_utils/admin.py
src/ldt/ldt/ldt_utils/contentindexer.py
src/ldt/ldt/ldt_utils/forms.py
src/ldt/ldt/ldt_utils/models.py
src/ldt/ldt/ldt_utils/projectindexer.py
src/ldt/ldt/ldt_utils/projectserializer.py
src/ldt/ldt/ldt_utils/tests.py
src/ldt/ldt/ldt_utils/utils.py
src/ldt/ldt/ldt_utils/views.py
src/ldt/ldt/management/__init__.py
src/ldt/ldt/management/commands/__init__.py
src/ldt/ldt/management/commands/testrunserver.py
src/ldt/ldt/test/__init__.py
src/ldt/ldt/test/client.py
src/ldt/ldt/test/testcases.py
src/ldt/ldt/text/__init__.py
src/ldt/ldt/text/admin.py
src/ldt/ldt/text/annotindexer.py
src/ldt/ldt/text/models.py
src/ldt/ldt/text/tests/__init__.py
src/ldt/ldt/text/tests/base_tests.py
src/ldt/ldt/text/tests/oauth_tests.py
src/ldt/ldt/text/tests/server_tests.py
src/ldt/ldt/text/urls.py
src/ldt/ldt/text/utils.py
src/ldt/ldt/text/views.py
src/ldt/ldt/user/forms.py
src/ldt/ldt/user/models.py
src/ldt/ldt/user/templatetags/logintag.py
src/ldt/ldt/user/views.py
src/ldt/ldt/utils/__init__.py
src/ldt/ldt/utils/context_processors.py
src/ldt/ldt/utils/path.py
src/ldt/ldt/utils/threading.py
src/ldt/ldt/utils/zipfileext.py
src/ldt/setup.py
web/ldtplatform/settings.py
web/ldtplatform/urls.py
web/ldtplatform/utils/context_processors.py
--- a/.pydevproject	Mon Apr 18 18:34:49 2011 +0200
+++ b/.pydevproject	Wed Apr 20 00:55:58 2011 +0200
@@ -2,7 +2,7 @@
 <?eclipse-pydev version="1.0"?>
 
 <pydev_project>
-<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python_live</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python_platform</pydev_property>
 <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property>
 <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
 <path>/platform/src/ldt</path>
--- a/src/ldt/distribute_setup.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/distribute_setup.py	Wed Apr 20 00:55:58 2011 +0200
@@ -13,13 +13,13 @@
 
 This file can also be run as a script to install or upgrade setuptools.
 """
+from distutils import log
+import fnmatch
 import os
 import sys
-import time
-import fnmatch
+import tarfile
 import tempfile
-import tarfile
-from distutils import log
+import time
 
 try:
     from site import USER_SITE
@@ -144,7 +144,7 @@
         except ImportError:
             return _do_download(version, download_base, to_dir, download_delay)
         try:
-            pkg_resources.require("distribute>="+version)
+            pkg_resources.require("distribute>=" + version)
             return
         except pkg_resources.VersionConflict:
             e = sys.exc_info()[1]
@@ -222,7 +222,7 @@
             return function(*args, **kw)
         finally:
             if patched:
-                DirectorySandbox._violation = DirectorySandbox._old
+                DirectorySandbox._violation = DirectorySandbox._old #@UndefinedVariable
                 del DirectorySandbox._old
 
     return __no_sandbox
@@ -351,7 +351,7 @@
 def _under_prefix(location):
     if 'install' not in sys.argv:
         return True
-    args = sys.argv[sys.argv.index('install')+1:]
+    args = sys.argv[sys.argv.index('install') + 1:]
     for index, arg in enumerate(args):
         for option in ('--root', '--prefix'):
             if arg.startswith('%s=' % option):
@@ -359,7 +359,7 @@
                 return location.startswith(top_dir)
             elif arg == option:
                 if len(args) > index:
-                    top_dir = args[index+1]
+                    top_dir = args[index + 1]
                     return location.startswith(top_dir)
         if arg == '--user' and USER_SITE is not None:
             return location.startswith(USER_SITE)
--- a/src/ldt/ldt/api/ldt/handlers.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/api/ldt/handlers.py	Wed Apr 20 00:55:58 2011 +0200
@@ -4,7 +4,7 @@
 import logging #@UnresolvedImport
 
 class ProjectHandler(BaseHandler):
-    allowed_methods = ('GET','PUT',)
+    allowed_methods = ('GET', 'PUT',)
     model = Project   
 
     def read(self, request, project_id):
--- a/src/ldt/ldt/auth/views.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/auth/views.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,8 +1,8 @@
-from social_auth.views import list as social_list
-from django.contrib.auth.views import login as django_login
-
 from django.contrib.auth import REDIRECT_FIELD_NAME
 from django.contrib.auth.forms import AuthenticationForm
+from django.contrib.auth.views import login as django_login
+from social_auth.views import list as social_list
+
 
 def login(request, template_name='registration/login.html',
           redirect_field_name=REDIRECT_FIELD_NAME,
@@ -11,4 +11,4 @@
     
     extra_context = {'social_list': social_list}
     
-    return django_login(request, template_name,redirect_field_name,authentication_form,current_app,extra_context)
+    return django_login(request, template_name, redirect_field_name, authentication_form, current_app, extra_context)
--- a/src/ldt/ldt/core/handlers/modwsgi.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/core/handlers/modwsgi.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,4 +1,6 @@
-import os, sys, site
+import os
+import sys
+import site
 
 def application(environ, start_response):
     os.environ['DJANGO_SETTINGS_MODULE'] = environ['DJANGO_SETTINGS_MODULE']
--- a/src/ldt/ldt/core/models.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/core/models.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,5 +1,5 @@
+from django.contrib.auth.models import User, Group
 from django.db import models
-from django.contrib.auth.models import *
 
 
 class Owner(models.Model):
--- a/src/ldt/ldt/core/views.py	Mon Apr 18 18:34:49 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-# Create your views here.
--- a/src/ldt/ldt/ldt_utils/admin.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/admin.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,13 +1,12 @@
-from django.conf import settings
-from django.conf.urls.defaults import *
+from django.conf.urls.defaults import patterns, url
 from django.contrib import admin
 from django.shortcuts import render_to_response
 from django.template import RequestContext
-from fileimport import *
-from forms import *
-from ldt.ldt_utils import ANALYZER, STORE
+from ldt.ldt_utils import STORE, ANALYZER
 from ldt.ldt_utils.contentindexer import ContentIndexer
-from models import *
+from ldt.ldt_utils.fileimport import FileImport, FileImportError
+from ldt.ldt_utils.forms import LdtImportForm, ReindexForm
+from ldt.ldt_utils.models import Content, Project, Media, Author
 import lucene
 
 
--- a/src/ldt/ldt/ldt_utils/contentindexer.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/contentindexer.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,9 +1,9 @@
 from django.conf import settings
 from ldt.ldt_utils.models import Segment
+from ldt.ldt_utils.utils import reduce_text_node
 import lucene
 import lxml.etree
 import urllib #@UnresolvedImport
-from ldt.ldt_utils.utils import reduce_text_node
 # import ldt.utils.log
 
 def Property(func):
@@ -79,7 +79,7 @@
                                 tags = tags + u" ; " + tagnode
     
                         title = reduce_text_node(elementNode, "title/text()")                
-                        abstract = reduce_text_node(elementNode,"abstract/text()")
+                        abstract = reduce_text_node(elementNode, "abstract/text()")
                         
                         author = elementNode.get("author", "")
                         start_ts = int(elementNode.get("begin", "-1"))
--- a/src/ldt/ldt/ldt_utils/forms.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/forms.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,13 +1,8 @@
 from django import forms
+from django.utils.translation import ugettext_lazy as _
+from ldt.forms import widgets as ldt_widgets
 from models import Project, Content, Media
-import uuid
 from utils import generate_uuid
-from django.forms.widgets import Widget, RadioSelect
-from django.contrib.admin import widgets as admin_widgets
-from django.core.urlresolvers import reverse
-from ldt.settings import BASE_URL
-from ldt.forms import widgets as ldt_widgets
-from django.utils.translation import ugettext_lazy as _
 
 class LdtImportForm(forms.Form):
     importFile = forms.FileField()
--- a/src/ldt/ldt/ldt_utils/models.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/models.py	Wed Apr 20 00:55:58 2011 +0200
@@ -4,14 +4,14 @@
 from django.utils.translation import ugettext_lazy as _
 from ldt.core.models import Document, Owner
 from ldt.ldt_utils import STORE, ANALYZER
-from utils import create_ldt, copy_ldt, create_empty_iri, update_iri, \
-    generate_uuid
+from utils import (create_ldt, copy_ldt, create_empty_iri, update_iri, 
+    generate_uuid)
 import lucene
 import lxml.etree
+import mimetypes
 import os.path
 import tagging.fields
 import uuid
-import mimetypes
 
 class Author(models.Model):
 
@@ -37,7 +37,7 @@
     description = models.TextField(null=True, blank=True, verbose_name=_('description'))
     title = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('title'))
     src = models.CharField(max_length=1024, unique=True, verbose_name=_('media.src'))
-    mimetype_field = models.CharField(max_length=512,null=True, blank=True, verbose_name=_('media.mimetype'))
+    mimetype_field = models.CharField(max_length=512, null=True, blank=True, verbose_name=_('media.mimetype'))
     
     def mimetype(): #@NoSelf
         def fget(self):
@@ -48,7 +48,7 @@
             else:
                 return None
         
-        def fset(self,value):
+        def fset(self, value):
             self.mimetype_field = value
         
         return locals()
--- a/src/ldt/ldt/ldt_utils/projectindexer.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/projectindexer.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,12 +1,5 @@
-import tempfile
-import os
-import os.path
-import shutil
-import ldt.utils.xml
 from ldt import settings
 import lucene
-from ldt.ldt_utils import STORE
-from ldt.ldt_utils import ANALYZER
 import lxml.etree
 
 def Property(func):
--- a/src/ldt/ldt/ldt_utils/projectserializer.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/projectserializer.py	Wed Apr 20 00:55:58 2011 +0200
@@ -219,7 +219,7 @@
                         "description": element_description,
                         "color": element_color,
                         "img": {
-                            "src": element_ldt_src, 
+                            "src": element_ldt_src,
                         },
                         "audio": {
                             "src" : element_audio_src,
@@ -265,7 +265,7 @@
             iri_id = mediaNode.attrib[u"id"]
             if self.from_display and iri_id not in self.display_contents_list:
                 continue
-            content = Content.objects.get(iri_id=iri_id)
+            content = Content.objects.get(iri_id=iri_id) #@UndefinedVariable
             self.__parse_content(content)
             
         res = self.ldt_doc.xpath("/iri/annotations/content")
@@ -273,7 +273,7 @@
             content_id = content_node.attrib[u"id"]
             if self.from_display and content_id not in self.display_contents_list:
                 continue
-            content = Content.objects.get(iri_id=content_id)
+            content = Content.objects.get(iri_id=content_id) #@UndefinedVariable
             for ensemble_node in content_node:
                 if ensemble_node.tag != "ensemble" :
                     continue
@@ -409,12 +409,12 @@
         current_cutting = None
         uri = None
         for annot in self.annotations_dict.values():
-            logging.debug("current cutting" + repr(current_cutting) + " : annot " + annot['meta']['id-ref'])
+            logging.debug("current cutting" + repr(current_cutting) + " : annot " + annot['meta']['id-ref']) #@UndefinedVariable
             if first_cutting and current_cutting and current_cutting != annot['meta']['id-ref'] :
                 break
             current_cutting = annot['meta']['id-ref']
             content_id = annot['media']
-            content = Content.objects.get(iri_id=content_id)
+            content = Content.objects.get(iri_id=content_id) #@UndefinedVariable
             if annot['tags']:
                 tags_list = map(lambda tag_entry: self.tags_dict[tag_entry['id-ref']]['meta']['dc:title'], annot['tags'])
             else:
--- a/src/ldt/ldt/ldt_utils/tests.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/tests.py	Wed Apr 20 00:55:58 2011 +0200
@@ -5,18 +5,15 @@
 Replace these with more appropriate tests for your application.
 """
 
+from django.conf import settings
 from django.test import TestCase
-import unittest
-import lxml.etree
-from models import Project, Content
 from ldt.core.models import Owner
-from utils import LdtUtils, LdtSearch, create_ldt, create_empty_iri, copy_ldt
-import base64
-import uuid
+from models import Project, Content
+from utils import LdtUtils, create_ldt, create_empty_iri, copy_ldt
+import lxml.etree
 import tempfile
-from django.contrib.auth.models import *
-from views import get_attrib
-from django.conf import settings
+import unittest
+import uuid
 
 
 
@@ -168,12 +165,4 @@
 
     def tearDown(self):
         self.project.delete()
-        ##self.cont1.delete()
-        ##self.cont2.delete()
 
-#    def test_get_attrib(self):
-#        get_attrib(self.project)
-#        ldoc = lxml.etree.fromstring(self.project.ldt)    
-#        self.assertEqual(self.project.title, ldoc.xpath("/iri/project")[0].get("title"))
-#        self.assertEqual(ldoc.xpath("/iri/medias/media")[0].get('id'), self.cont1.iri_id)
-#        self.assertTrue(self.cont2.iri_id not in self.project.contents.all())
--- a/src/ldt/ldt/ldt_utils/utils.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/utils.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,12 +1,11 @@
 from django.conf import settings
+from ldt.ldt_utils import STORE
 import datetime
 import django.core.urlresolvers
 import lucene
 import lxml.etree
 import urllib
 import uuid
-from ldt.ldt_utils import STORE
-from ldt.ldt_utils import ANALYZER
 
 __BOOLEAN_DICT = {
     'false':False,
@@ -23,7 +22,7 @@
         node_list = element_node.xpath(xpath_str, smart_strings=False)
     else:
         node_list = [element_node.text]
-    return reduce(lambda t, s: t + s,node_list , "")
+    return reduce(lambda t, s: t + s, node_list , "")
 
 def boolean_convert(bool):
     if bool is None:
--- a/src/ldt/ldt/ldt_utils/views.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/views.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,62 +1,52 @@
-from contentindexer import *
 from django.conf import settings
 from django.contrib.auth.decorators import login_required
-from django.core import serializers
 from django.core.urlresolvers import reverse
 from django.db.models import Q
-from django.forms.forms import get_declared_fields
 from django.forms.models import model_to_dict
 from django.forms.util import ErrorList
-from django.http import HttpResponse, HttpResponseRedirect, \
-    HttpResponseForbidden, HttpResponseServerError
-from django.shortcuts import render_to_response, get_object_or_404, \
-    get_list_or_404
+from django.http import (HttpResponse, HttpResponseRedirect, 
+    HttpResponseForbidden, HttpResponseServerError)
+from django.shortcuts import (render_to_response, get_object_or_404, 
+    get_list_or_404)
 from django.template import RequestContext
 from django.template.loader import render_to_string
 from django.utils import simplejson
 from django.utils.html import escape
 from django.utils.translation import ugettext as _, ungettext
-from fileimport import *
-from forms import LdtImportForm, LdtAddForm, SearchForm, AddProjectForm, \
-    CopyProjectForm, ContentForm, MediaForm
+from forms import (LdtAddForm, SearchForm, AddProjectForm, CopyProjectForm, 
+    ContentForm, MediaForm)
 from ldt.core.models import Owner
-from ldt.ldt_utils.models import Content, Project, Owner
-from ldt.ldt_utils.projectserializer import ProjectSerializer
-from ldt.ldt_utils.utils import boolean_convert
-from lxml.html import fromstring, fragment_fromstring
-from models import *
-from projectserializer import *
-from string import Template
+from ldt.ldt_utils.models import Content
+from ldt.ldt_utils.utils import boolean_convert, LdtUtils, LdtSearch
+from lxml.html import fragment_fromstring
+from models import Media, Project
+from projectserializer import ProjectSerializer
 from urllib2 import urlparse
-from utils import *
-import StringIO
 import base64
-import cgi
 import django.core.urlresolvers
 import ldt.auth as ldt_auth
 import ldt.utils.path as ldt_utils_path
 import logging
-import lucene
 import lxml.etree
-import tempfile
+import mimetypes
+import os
 import urllib2
-import uuid
 
 
 @login_required
 def workspace(request):
 
     # list of contents
-    content_list = Content.objects.all()
+    content_list = Content.objects.all() #@UndefinedVariable
 
     # get list of projects
-    project_list = Project.objects.all()
+    project_list = Project.objects.all() #@UndefinedVariable
     
     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
     
     # render list
     return render_to_response("ldt/ldt_utils/workspace.html",
-                              {'contents': content_list, 'projects': project_list, 
+                              {'contents': content_list, 'projects': project_list,
                                'is_gecko': is_gecko},
                               context_instance=RequestContext(request))
 
@@ -68,7 +58,7 @@
     ldt_id = request.GET.get("ldt_id")
 
 
-    project = Project.objects.get(ldt_id=ldt_id);
+    project = Project.objects.get(ldt_id=ldt_id); #@UndefinedVariable
 
     stream_mode = project.stream_mode
     if stream_mode != "video":
@@ -110,7 +100,7 @@
     if is_owner:
         owner = None
         try:
-            owner = Owner.objects.get(user=request.user)
+            owner = Owner.objects.get(user=request.user) #@UndefinedVariable
         except:
             return HttpResponseServerError("<h1>User not found</h1>")
         query &= Q(owner=owner)
@@ -123,7 +113,7 @@
             filter = filter[1:]
         query &= Q(title__icontains=filter)
 
-    project_list = Project.objects.filter(query)
+    project_list = Project.objects.filter(query) #@UndefinedVariable
 
     return render_to_response("ldt/ldt_utils/partial/projectslist.html",
                               {'projects': project_list},
@@ -139,9 +129,9 @@
         filter = filter[1:]
 
     if filter:
-        content_list = Content.objects.filter(title__icontains=filter)
+        content_list = Content.objects.filter(title__icontains=filter) #@UndefinedVariable
     else:
-        content_list = Content.objects.all()
+        content_list = Content.objects.all() #@UndefinedVariable
 
     return render_to_response("ldt/ldt_utils/partial/contentslist.html",
                               {'contents': content_list},
@@ -201,11 +191,11 @@
 
         id_list = ids.keys()
         
-        if edition is not None:
-            ids_editions = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id")))            
-            id_list = filter(lambda id: id in id_list, ids_editions)
+        #if edition is not None:
+        #    ids_editions = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id")))            
+        #    id_list = filter(lambda id: id in id_list, ids_editions)
             
-        contentList = Content.objects.filter(iri_id__in=id_list)        
+        contentList = Content.objects.filter(iri_id__in=id_list)        #@UndefinedVariable
 
             
     ldtgen = LdtUtils()
@@ -226,8 +216,8 @@
         
     iri_ids = None
     
-    if edition is not None:
-        iri_ids = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id")))
+    #if edition is not None:
+    #    iri_ids = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id")))
 
     iri = lxml.etree.Element('iri')
     doc = lxml.etree.ElementTree(iri)	
@@ -250,12 +240,12 @@
 
 @login_required         
 def list_ldt(request):
-    contents = Content.objects.all()
+    contents = Content.objects.all() #@UndefinedVariable
     try:
-        owner = Owner.objects.get(user=request.user)
+        owner = Owner.objects.get(user=request.user) #@UndefinedVariable
     except:
         return HttpResponseRedirect(settings.LOGIN_URL)
-    ldtProjects = Project.objects.filter(owner=owner)
+    ldtProjects = Project.objects.filter(owner=owner) #@UndefinedVariable
     context = {
     'contents': contents,
     'projects': ldtProjects.reverse(),
@@ -264,7 +254,7 @@
 
 @login_required         
 def list_content(request):
-    contents = Content.objects.all()
+    contents = Content.objects.all() #@UndefinedVariable
     context = {
         'contents': contents,
     }
@@ -282,7 +272,7 @@
             #return HttpResponseRedirect(reverse("ldt.ldt_utils.views.list_ldt"))
     else:
         form = LdtAddForm()
-        contents = Content.objects.all()
+        contents = Content.objects.all() #@UndefinedVariable
         form_status = "none"
             
     return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'form_status':form_status, 'create_project_action':reverse(create_ldt_view)}, context_instance=RequestContext(request))
@@ -335,7 +325,7 @@
     resp['Cache-Control'] = 'no-cache, must-revalidate'
     resp['Pragma'] = 'no-cache'
     
-    project = Project.objects.get(ldt_id=id)
+    project = Project.objects.get(ldt_id=id) #@UndefinedVariable
     resp.write(project.ldt)
     return resp
 
@@ -349,7 +339,7 @@
 
 def project_json_externalid(request, id):
         
-    res_proj = get_list_or_404(Project.objects.order_by('-modification_date'), contents__external_id=id)
+    res_proj = get_list_or_404(Project.objects.order_by('-modification_date'), contents__external_id=id) #@UndefinedVariable
     
     return project_json(request, res_proj[0], False)
 
@@ -401,7 +391,7 @@
 
 def project_annotations_rdf(request, ldt_id):
 
-    project = Project.objects.get(ldt_id=ldt_id);
+    project = Project.objects.get(ldt_id=ldt_id); #@UndefinedVariable
     
     if not ldt_auth.checkAccess(request.user, project):
         return HttpResponseForbidden(_("You can not access this project"))
@@ -428,7 +418,7 @@
     
     rdf_root = lxml.etree.Element(rdf + u"RDF", nsmap=nsmap)
     
-    logging.debug("RDF annotations : " + repr(annotations))
+    logging.debug("RDF annotations : " + repr(annotations)) #@UndefinedVariable
     
     for annotation in annotations:
         uri = u""
@@ -456,7 +446,7 @@
     if request.method == "POST":
         ldt = request.POST['ldt']
         id = request.POST['id']
-        ldtproject = Project.objects.get(ldt_id=id)
+        ldtproject = Project.objects.get(ldt_id=id) #@UndefinedVariable
 
         #save xml ldt
         ldtproject.ldt = ldt
@@ -525,7 +515,7 @@
     resp = HttpResponse(mimetype="text/xml; charset=utf-8")
     resp['Cache-Control'] = 'no-cache'
 
-    contentList = Content.objects.filter(iri_id=url)
+    contentList = Content.objects.filter(iri_id=url) #@UndefinedVariable
 
     ldtgen = LdtUtils()
     ldtgen.generateLdt(contentList, file=resp, title=contentList[0].title, startSegment=startSegment)
@@ -617,11 +607,11 @@
 def write_content_base(request, iri_id=None):
 
     if iri_id:        
-        instance_content = Content.objects.get(iri_id=iri_id)
+        instance_content = Content.objects.get(iri_id=iri_id) #@UndefinedVariable
         instance_media = instance_content.media_obj
-        logging.debug("write_content_base : valid form: for instance : media -> " + repr(instance_media) + " content : for instance : " + repr(instance_content)) 
+        logging.debug("write_content_base : valid form: for instance : media -> " + repr(instance_media) + " content : for instance : " + repr(instance_content)) #@UndefinedVariable
     else:
-        logging.debug("No iri_id")
+        logging.debug("No iri_id") #@UndefinedVariable
         instance_content = None
         instance_media = None
     
@@ -658,7 +648,7 @@
         media_valid = media_form.is_valid()
         content_valid = content_form.is_valid()
         
-        logging.debug("write_content_base : valid form: for instance : " + repr(instance_media) + " -> media " + str(media_valid) + " content : for instance : " + repr(instance_content) + " : " + str(content_valid))
+        logging.debug("write_content_base : valid form: for instance : " + repr(instance_media) + " -> media " + str(media_valid) + " content : for instance : " + repr(instance_content) + " : " + str(content_valid)) #@UndefinedVariable
         
         if media_valid and content_valid :
             
@@ -678,7 +668,7 @@
                 del cleaned_data["media_file"]
                 if not cleaned_data['videopath']:
                     cleaned_data['videopath'] = settings.STREAM_URL
-                media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data)
+                media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
             elif media_input_type == "url" or  media_input_type == "upload" :                
                 # copy file
                 #complet src
@@ -723,7 +713,7 @@
                         chunck = source_file.read(2048)
         
                 except Exception as inst:
-                    logging.debug("write_content_base : POST error when processing file:" + str(inst))
+                    logging.debug("write_content_base : POST error when processing file:" + str(inst)) #@UndefinedVariable
                     form_status = "error"
                     #set error for form
                     if media_input_type == "url":
@@ -743,18 +733,18 @@
                     del cleaned_data["media_file"]
                     if not cleaned_data['videopath']:
                         cleaned_data['videopath'] = settings.STREAM_URL
-                    mimetype = cleaned_data.get('mimetype_field',None)
+                    mimetype = cleaned_data.get('mimetype_field', None)
                     if not mimetype:
                         mimetype = mimetypes.guess_type(cleaned_data['src'])
                     cleaned_data['mimetype_field'] = mimetype
-                    media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data)
+                    media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
                 else:
                     media = None
 
             if media and not created:
                 for attribute in ('external_id', 'external_permalink', 'external_publication_url', 'external_src_url', 'media_creation_date', 'videopath', 'duration', 'description', 'title'):
                     setattr(media, attribute, cleaned_data.get(attribute))
-                mimetype = cleaned_data.get('mimetype_field',None)
+                mimetype = cleaned_data.get('mimetype_field', None)
                 if not mimetype:
                     mimetype = mimetypes.guess_type(media.src) 
                 media.mimetype_field = mimetype
@@ -768,7 +758,7 @@
                 content_defaults.update(content_form.cleaned_data)
                 content_defaults['media_obj'] = media
                 del content_defaults["media_input_type"]
-                content, created = Content.objects.get_or_create(iri_id=content_form.cleaned_data['iri_id'], defaults=content_defaults)
+                content, created = Content.objects.get_or_create(iri_id=content_form.cleaned_data['iri_id'], defaults=content_defaults) #@UndefinedVariable
                 if not created:
                     
                     for attribute in ('iriurl', 'title', 'description', 'duration', 'content_creation_date', 'tags', 'media_obj'):
@@ -828,7 +818,7 @@
         iri_id = request.REQUEST.get("iri_id", None)
         
     if iri_id:
-        for content in Content.objects.filter(iri_id=iri_id):
+        for content in Content.objects.filter(iri_id=iri_id): #@UndefinedVariable
             titles.append(unicode(content.title))
             projects = content.project_set.all()
             projects_nb = len(projects)
@@ -846,5 +836,5 @@
         iri_id = request.REQUEST.get("iri_id", None)
         
     if iri_id:
-        Content.objects.filter(iri_id=iri_id).delete()
+        Content.objects.filter(iri_id=iri_id).delete() #@UndefinedVariable
     
--- a/src/ldt/ldt/management/__init__.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/management/__init__.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,11 +1,11 @@
+from django.conf import settings
+from django.contrib.auth.models import User, Group
+from django.contrib.contenttypes.models import ContentType
+from django.core.exceptions import ObjectDoesNotExist
 from django.db.models import signals
-from django.conf import settings
-from django.contrib.auth.models import User, Group 
 from ldt.core.models import Owner
 from ldt.user.models import ldt, IriGroup
-from django.contrib.contenttypes.models import ContentType
 # import logging
-from django.core.exceptions import ObjectDoesNotExist
 
     
 def post_save_ldt(instance, raw, created, **kwargs):
--- a/src/ldt/ldt/management/commands/__init__.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/management/commands/__init__.py	Wed Apr 20 00:55:58 2011 +0200
@@ -0,0 +1,1 @@
+
--- a/src/ldt/ldt/management/commands/testrunserver.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/management/commands/testrunserver.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,9 +1,8 @@
-from django.core.management.commands.runserver import Command as RunserverCommand
+from django.core.management.base import CommandError
+from django.core.management.commands.runserver import (
+    Command as RunserverCommand)
 from django.core.servers.basehttp import WSGIServer, WSGIRequestHandler
 import sys
-import threading
-from threading import Event
-from django.conf import settings
 
 def run(addr, port, wsgi_handler, keep_running=None, ready_event=None):
     server_address = (addr, port)
@@ -76,4 +75,4 @@
             if shutdown_message:
                 print shutdown_message
 
-    
\ No newline at end of file
+    
--- a/src/ldt/ldt/test/__init__.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/test/__init__.py	Wed Apr 20 00:55:58 2011 +0200
@@ -0,0 +1,1 @@
+
--- a/src/ldt/ldt/test/client.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/test/client.py	Wed Apr 20 00:55:58 2011 +0200
@@ -2,19 +2,14 @@
 from django.conf import settings
 from django.core.urlresolvers import reverse
 from django.http import HttpResponse, SimpleCookie
-from django.test.client import encode_multipart, encode_file, Client, BOUNDARY, \
-    MULTIPART_CONTENT, CONTENT_TYPE_RE
+from django.test.client import (encode_multipart, Client, BOUNDARY, 
+    MULTIPART_CONTENT, CONTENT_TYPE_RE)
 from django.utils.encoding import smart_str
 from django.utils.http import urlencode
 from ldt.utils import Property
-from oauth2 import Request, Consumer, Token, SignatureMethod_HMAC_SHA1, \
-    generate_nonce, SignatureMethod_PLAINTEXT
-from oauth_provider.consts import OUT_OF_BAND
+from oauth2 import Request, Consumer, Token, SignatureMethod_HMAC_SHA1
 from urlparse import urlsplit, urlunsplit, urlparse, urlunparse, parse_qs
 import httplib2
-from django.utils.importlib import import_module
-import logging
-import re
 try:
     from cStringIO import StringIO
 except ImportError:
@@ -49,7 +44,7 @@
         self.__login_url = None
     
     @Property
-    def baseurl():
+    def baseurl(): #@NoSelf
         
         def fget(self):
             return self.__baseurltuple
@@ -63,7 +58,7 @@
         return locals()
 
     @Property
-    def login_url():
+    def login_url(): #@NoSelf
         
         def fget(self):
             return self.__login_url
@@ -89,7 +84,7 @@
         
         resp.client = self
         resp.raw_response = response
-        for key,value in response.items():
+        for key, value in response.items():
             resp[key] = value 
 
         return resp
@@ -100,7 +95,7 @@
         
         r = response.raw_response.previous
         while not r is None:
-            response.redirect_chain.append((r['content-location'],r.status))
+            response.redirect_chain.append((r['content-location'], r.status))
             r = r.previous
         
         return response
@@ -139,7 +134,7 @@
         """
         if content_type == MULTIPART_CONTENT:
             post_data = encode_multipart(BOUNDARY, data)
-        elif content_type  == "application/x-www-form-urlencoded":
+        elif content_type == "application/x-www-form-urlencoded":
             post_data = urlencode(data)            
         else:
             # Encode the content so that the byte representation is correct.
@@ -162,7 +157,7 @@
         if extra:
             headers.update(extra)
 
-        response,content = self.handler.request(fullpath, method="POST", headers=headers, body=post_data)
+        response, content = self.handler.request(fullpath, method="POST", headers=headers, body=post_data)
         
         resp = self._process_response(response, content)
         
@@ -188,10 +183,6 @@
 
         Causes the authenticated user to be logged out.
         """
-#        session = import_module(settings.SESSION_ENGINE).SessionStore()
-#        session_cookie = self.cookies.get(settings.SESSION_COOKIE_NAME)
-#        if session_cookie:
-#            session.delete(session_key=session_cookie.value)
         self.cookies = SimpleCookie()
 
 
@@ -255,7 +246,7 @@
         """
         if content_type is MULTIPART_CONTENT:
             put_data = encode_multipart(BOUNDARY, data)
-        elif content_type  == "application/x-www-form-urlencoded":
+        elif content_type == "application/x-www-form-urlencoded":
             put_data = urlencode(data)
         else:
             put_data = data
@@ -273,7 +264,7 @@
         if extra:
             headers.update(extra)
 
-        response,content = self.handler.request(fullpath, method="PUT", headers=headers, body=put_data)
+        response, content = self.handler.request(fullpath, method="PUT", headers=headers, body=put_data)
 
         resp = self._process_response(response, content)
         
@@ -345,17 +336,17 @@
         
         path_parsed = urlparse(path)
                 
-        if method=='GET' and (data is None or len(data) == 0):
+        if method == 'GET' and (data is None or len(data) == 0):
             new_data = parse_qs(path_parsed[4])
         elif  data is None:
             new_data = {}
         else:
             new_data = data.copy()
             
-        clean_path = ['']*6
+        clean_path = [''] * 6
         clean_path[0] = 'http'
         clean_path[1] = self._servername
-        for i in range(0,4):
+        for i in range(0, 4):
             clean_path[i] = path_parsed[i] or clean_path[i]
         path = urlunparse(clean_path)
         
@@ -425,15 +416,15 @@
 
 def _generate_request_wrapper(meth):
     def request_wrapper(inst, *args, **kwargs):
-        path = args[0] if len(args) > 0 else kwargs.get('path','')
-        data = args[1] if len(args) > 1 else kwargs.get('data',{})
+        path = args[0] if len(args) > 0 else kwargs.get('path', '')
+        data = args[1] if len(args) > 1 else kwargs.get('data', {})
         args = args[2:]
         if 'path' in kwargs:
             del(kwargs['path'])        
         if 'data' in kwargs:
             del(kwargs['data'])
         data = inst._oauth_data.inject_oauth_data(path, METHOD_MAPPING[meth.__name__], data)
-        return meth(inst,path=path, data=data, *args, **kwargs)
+        return meth(inst, path=path, data=data, *args, **kwargs)
     return request_wrapper
 
 def _generate_login_wrapper(meth):
@@ -452,7 +443,7 @@
     def __new__(cls, name, bases, attrs):
         newattrs = {}
         def set_consumer(inst, key, secret):
-            inst._oauth_data.set_consumer(key,secret)
+            inst._oauth_data.set_consumer(key, secret)
         newattrs['set_consumer'] = set_consumer
         def set_scope(inst, scope):
             inst._oauth_data.set_scope(scope)
@@ -482,11 +473,11 @@
         init_method = newattrs.get("__init__", None)
         
         def new_init(inst, *args, **kwargs):
-            inst._oauth_data = OAuthPayload(attrs.get('servername','testserver'))
+            inst._oauth_data = OAuthPayload(attrs.get('servername', 'testserver'))
             if init_method is not None:
-                init_method(*args,**kwargs)
+                init_method(*args, **kwargs)
             else:
-                super(inst.__class__,inst).__init__(*args,**kwargs)
+                super(inst.__class__, inst).__init__(*args, **kwargs)
         newattrs["__init__"] = new_init
                         
         return super(OAuthMetaclass, cls).__new__(cls, name, bases, newattrs)
--- a/src/ldt/ldt/test/testcases.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/test/testcases.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,15 +1,14 @@
 from django.conf import settings
 from django.core.management import call_command
 from django.test.testcases import TestCase, TransactionTestCase
-import django
+from ldt.test.client import WebClient, OAuthClient, OAuthWebClient
+import httplib
 import threading
 import time
-import httplib
-from ldt.test.client import WebClient, OAuthClient, OAuthWebClient
 
         
-def launch_webserver(addrport='', keep_running = None, ready_event = None):
-    call_command('testrunserver',addrport, keep_running, ready_event)
+def launch_webserver(addrport='', keep_running=None, ready_event=None):
+    call_command('testrunserver', addrport, keep_running, ready_event)
 
 class WebTestCase(TransactionTestCase):
     
@@ -22,12 +21,12 @@
         self.client.login_url = value
     
     def _pre_setup(self):
-        super(WebTestCase,self)._pre_setup()
+        super(WebTestCase, self)._pre_setup()
         self._keep_webserver = True
         self._lock = threading.Lock()
         self._ready_event = threading.Event()
         
-        self.baseurl = "http://"+settings.TEST_WEBSERVER_ADDRPORT
+        self.baseurl = "http://" + settings.TEST_WEBSERVER_ADDRPORT
         self.client = WebClient()
         self.client.baseurl = self.baseurl
         login_url = '/' + settings.LOGIN_URL[len(settings.BASE_URL):].lstrip('/')
@@ -38,7 +37,7 @@
                 return self._keep_webserver
                     
         def launch_server():
-            launch_webserver(settings.TEST_WEBSERVER_ADDRPORT, keep_running=keep_runningserver, ready_event = self._ready_event)
+            launch_webserver(settings.TEST_WEBSERVER_ADDRPORT, keep_running=keep_runningserver, ready_event=self._ready_event)
         
         #launch_server()
         self._t = threading.Thread(target=launch_server)
@@ -54,7 +53,7 @@
         conn.request("HEAD", "/")
         conn.getresponse()
         self._t.join()
-        super(WebTestCase,self)._post_teardown()
+        super(WebTestCase, self)._post_teardown()
 
 class OAuthTestCase(TestCase):
     
@@ -62,7 +61,7 @@
         self.client.set_consumer(key, secret)
 
     def _pre_setup(self):
-        super(OAuthTestCase,self)._pre_setup()
+        super(OAuthTestCase, self)._pre_setup()
         self.client = OAuthClient()
         
 class OAuthWebTestCase(WebTestCase):
@@ -71,7 +70,7 @@
         self.client.set_consumer(key, secret)
 
     def _pre_setup(self):
-        super(OAuthWebTestCase,self)._pre_setup()
+        super(OAuthWebTestCase, self)._pre_setup()
         self.client = OAuthWebClient()
         self.client.baseurl = self.baseurl
         login_url = '/' + settings.LOGIN_URL[len(settings.BASE_URL):].lstrip('/')
@@ -79,4 +78,4 @@
 
 
 
-    
\ No newline at end of file
+    
--- a/src/ldt/ldt/text/__init__.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/__init__.py	Wed Apr 20 00:55:58 2011 +0200
@@ -5,12 +5,12 @@
 
 STORE = lucene.SimpleFSDirectory(lucene.File(settings.INDEX_PATH))
 ANALYZER = lucene.PerFieldAnalyzerWrapper(lucene.StandardAnalyzer(lucene.Version.LUCENE_CURRENT))
-ANALYZER.addAnalyzer("tags",lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
-ANALYZER.addAnalyzer("title",lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
-ANALYZER.addAnalyzer("abstract",lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
-ANALYZER.addAnalyzer("all",lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
-ANALYZER.addAnalyzer("type_doc",lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
+ANALYZER.addAnalyzer("tags", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
+ANALYZER.addAnalyzer("title", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
+ANALYZER.addAnalyzer("abstract", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
+ANALYZER.addAnalyzer("all", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
+ANALYZER.addAnalyzer("type_doc", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
 
 
-VERSION  = (1,0)
+VERSION = (1, 0)
 VERSION_STR = unicode(".".join(map(lambda i:"%01d" % (i,), VERSION)))
--- a/src/ldt/ldt/text/admin.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/admin.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,5 +1,4 @@
 from django.contrib import admin
-from django.conf import settings
-from models import *
+from ldt.text.models import Annotation
 
 admin.site.register(Annotation)
--- a/src/ldt/ldt/text/annotindexer.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/annotindexer.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,9 +1,4 @@
-from django.conf import settings
-from models import *
 import lucene
-from ldt.text import STORE
-from ldt.text import ANALYZER
-import lxml.etree
 
 
 class AnnotIndexer(object):
@@ -43,4 +38,4 @@
         self.__writer.addDocument(doc)
             
         self.__writer.close()
-        
\ No newline at end of file
+        
--- a/src/ldt/ldt/text/models.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/models.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,17 +1,12 @@
-from django.conf import settings
+from annotindexer import AnnotIndexer
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
-from ldt.core.models import Document, Owner
-from django.contrib.auth.models import User
-import tagging.fields
+from ldt.ldt_utils import STORE, ANALYZER
 from tagging.models import Tag
 from utils import generate_uuid
-import os.path
-import uuid
+import lucene
 import lxml
-import lucene
-from ldt.ldt_utils import STORE, ANALYZER
-from annotindexer import AnnotIndexer
+import tagging.fields
 #from django.core.management.validation import max_length
 
 def Property(func):
@@ -32,14 +27,14 @@
     update_date = models.DateTimeField(auto_now=True, verbose_name=_('annotation.update_date'))
     
     @Property
-    def tags():
+    def tags(): #@NoSelf
         
         def fget(self):
             return ",".join(self.tag_list)
         
         def fset(self, value):
             values = None
-            if isinstance(value, (list,tuple)):
+            if isinstance(value, (list, tuple)):
                 values = list(value)
             elif value is not None:
                 values = [v.lower().strip() for v in unicode(value).split(",")]
@@ -52,7 +47,7 @@
         return locals()
     
     @Property
-    def tag_list():
+    def tag_list(): #@NoSelf
         def fget(self):
             return [t.name for t in Tag.objects.get_for_object(self)]
         
@@ -82,9 +77,9 @@
         
         
         textannotation = lxml.etree.SubElement(iri, 'text-annotation')
-        id = lxml.etree.SubElement(textannotation,'id')
+        id = lxml.etree.SubElement(textannotation, 'id')
         id.text = self.external_id
-        uri = lxml.etree.SubElement(textannotation,'uri')
+        uri = lxml.etree.SubElement(textannotation, 'uri')
         uri.text = self.uri
         
         if self.tags:
@@ -93,17 +88,17 @@
                 tag = lxml.etree.SubElement(tags, 'tag')
                 tag.text = t
         
-        content = lxml.etree.SubElement(textannotation,'content')
-        color = lxml.etree.SubElement(content,'color')
+        content = lxml.etree.SubElement(textannotation, 'content')
+        color = lxml.etree.SubElement(content, 'color')
         color.text = self.color
-        description = lxml.etree.SubElement(content,'description')
+        description = lxml.etree.SubElement(content, 'description')
         description.text = self.description
-        title = lxml.etree.SubElement(content,'title')
+        title = lxml.etree.SubElement(content, 'title')
         title.text = self.title
-        text = lxml.etree.SubElement(content,'text')
+        text = lxml.etree.SubElement(content, 'text')
         text.text = self.text
         
-        meta = lxml.etree.SubElement(textannotation,'meta')
+        meta = lxml.etree.SubElement(textannotation, 'meta')
         contributor = lxml.etree.SubElement(meta, "contributor")
         contributor.text = self.contributor
         creator = lxml.etree.SubElement(meta, "creator")
@@ -138,8 +133,8 @@
     def index_annot(self):
         lucene.getVMEnv().attachCurrentThread()
         writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
-        annotl = [self,]
-        indexer = AnnotIndexer(annotl,writer)
+        annotl = [self, ]
+        indexer = AnnotIndexer(annotl, writer)
         indexer.index_all()
         writer.close()
 
@@ -150,4 +145,4 @@
         writer.close()
         self.index_annot()
         
-        
\ No newline at end of file
+        
--- a/src/ldt/ldt/text/tests/__init__.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/tests/__init__.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,3 +1,3 @@
 from base_tests import *
 from oauth_tests import *
-from server_tests import *
\ No newline at end of file
+from server_tests import *
--- a/src/ldt/ldt/text/tests/base_tests.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/tests/base_tests.py	Wed Apr 20 00:55:58 2011 +0200
@@ -2,22 +2,11 @@
 
 """ Run these tests with 'python manage.py test text'  """
 
-from django.conf import settings
-from django.contrib.auth.models import *
-from django.db import transaction
-from django.test import TestCase
-from ldt.core.models import Owner
-from ldt.test.testcases import *
+from ldt.test.testcases import OAuthTestCase, TestCase
 from ldt.text import VERSION_STR
-from ldt.text.models import *
-from ldt.text.views import *
+from ldt.text.models import Annotation
 import datetime
 import lxml.etree
-import time
-import unittest
-import urllib
-import uuid
-from oauth_provider.models import Resource, Consumer
 
 
 CONSUMER_KEY = 'dpf43f3p2l4k3l03'
@@ -29,13 +18,13 @@
 # 2. the returned xml contains correct data
 class CreateTest(OAuthTestCase):
     
-    fixtures = ['base_data','oauth_data']
+    fixtures = ['base_data', 'oauth_data']
      
     def setUp(self):
         
         self.id = 'f2c1d1fa-629d-4520-a3d2-955b4f2582c0'
         self.text = "texte selectionne lors de la creation de l\'annotation"
-        self.content = str('<iri><text-annotation><id>'+self.id+'</id><uri>http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168</uri><tags><tag>tag1</tag><tag>tag2</tag></tags><content><color>#AAAAAA</color><description><![CDATA[texte de description]]></description><title><![CDATA[titre de l\'annotation]]></title><text>'+self.text+'</text></content><meta><contributor>oaubert</contributor><contributor-id>79cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created>2010-09-06 12:33:53.417550</created><creator>oaubert</creator><creator-id>79cd0532-1dda-4130-b351-6a181130a7c9</creator-id><modified>2010-09-06 12:33:53.420459</modified></meta></text-annotation></iri>')
+        self.content = str('<iri><text-annotation><id>' + self.id + '</id><uri>http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168</uri><tags><tag>tag1</tag><tag>tag2</tag></tags><content><color>#AAAAAA</color><description><![CDATA[texte de description]]></description><title><![CDATA[titre de l\'annotation]]></title><text>' + self.text + '</text></content><meta><contributor>oaubert</contributor><contributor-id>79cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created>2010-09-06 12:33:53.417550</created><creator>oaubert</creator><creator-id>79cd0532-1dda-4130-b351-6a181130a7c9</creator-id><modified>2010-09-06 12:33:53.420459</modified></meta></text-annotation></iri>')
         self.error_content = '<iri><text-annotation><id>z2c1d1fa-629d-4520-a3d2-955b4f2582c0</id><uri>http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168</uri><tags><tag>tag1</tag><tag>tag2</tag></tags><content><color>#AAAAAA</color><description><![CDATA[texte de description]]></description><title><![CDATA[titre de l\'annotation]]></title><text><![CDATA[texte selectionne lors de la creation de l\'annotation]]></text></content><meta><contributor>oaubert</contributor><contributor-id>79cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created>2010-09-06 12:33:53.417550</created><creator>oaubert</creator><creator-id>79cd0532-1dda-4130-b351-6a181130a7c9</creator-id><modified>2010-09-06 12:33:53.420459</modified></meta></text-annotation></iri>' 
         
         self.set_consumer(CONSUMER_KEY, CONSUMER_SECRET)
@@ -43,22 +32,22 @@
         
     def test_create_annotation(self):
         
-        response = self.client.post('/api/'+ VERSION_STR +'/text/create/', {'content':self.content})
-        self.assertEqual(response.status_code,200)
+        response = self.client.post('/api/' + VERSION_STR + '/text/create/', {'content':self.content})
+        self.assertEqual(response.status_code, 200)
         annot1 = lxml.etree.fromstring(response.content)
-        self.assertEqual(annot1.xpath("/iri/text-annotation/id/text()")[0],self.id)
-        self.assertEqual(annot1.xpath("/iri/text-annotation/content/text/text()")[0],self.text)
-        self.assertEqual(len(annot1.xpath("/iri/text-annotation/tags/tag")),2)
+        self.assertEqual(annot1.xpath("/iri/text-annotation/id/text()")[0], self.id)
+        self.assertEqual(annot1.xpath("/iri/text-annotation/content/text/text()")[0], self.text)
+        self.assertEqual(len(annot1.xpath("/iri/text-annotation/tags/tag")), 2)
         self.assertEqual(annot1.xpath("/iri/text-annotation/meta/created/text()")[0][:11], str(datetime.datetime.now())[:11])
         
         annot2 = Annotation.objects.get(external_id=self.id)
-        self.assertEqual(annot2.text,self.text)
-        self.assertEqual(len(annot2.tags.split(",")),2)
+        self.assertEqual(annot2.text, self.text)
+        self.assertEqual(len(annot2.tags.split(",")), 2)
         self.assertEqual(str(annot2.creation_date)[:11], str(datetime.datetime.now())[:11])
         
     def test_error_create(self):
         
-        response = self.client.post('/api/'+ VERSION_STR +'/text/create/', {'content':self.error_content})
+        response = self.client.post('/api/' + VERSION_STR + '/text/create/', {'content':self.error_content})
         self.assertEqual(response.status_code, 409)
 
 
@@ -76,20 +65,20 @@
    
     def test_get_annotation(self):
         
-        response = self.client.get('http://127.0.0.1:8000/api/'+ VERSION_STR +'/text/get/'+self.id+'')
-        self.assertEqual(response.status_code,200)
+        response = self.client.get('http://127.0.0.1:8000/api/' + VERSION_STR + '/text/get/' + self.id + '')
+        self.assertEqual(response.status_code, 200)
         annot1 = lxml.etree.fromstring(response.content)
-        self.assertEqual(annot1.xpath("/iri/text-annotation/id/text()")[0],self.id)
-        self.assertTrue('tag3','tag1' in annot1.xpath("/iri/text-annotation/tags/tag/text()"))
-        self.assertTrue('mytag','tag2new' in annot1.xpath("/iri/text-annotation/tags/tag/text()"))
-        self.assertEqual(annot1.xpath("/iri/text-annotation/content/color/text()")[0],self.color)
-        self.assertEqual(annot1.xpath("/iri/text-annotation/content/title/text()")[0],self.title)
+        self.assertEqual(annot1.xpath("/iri/text-annotation/id/text()")[0], self.id)
+        self.assertTrue('tag3', 'tag1' in annot1.xpath("/iri/text-annotation/tags/tag/text()"))
+        self.assertTrue('mytag', 'tag2new' in annot1.xpath("/iri/text-annotation/tags/tag/text()"))
+        self.assertEqual(annot1.xpath("/iri/text-annotation/content/color/text()")[0], self.color)
+        self.assertEqual(annot1.xpath("/iri/text-annotation/content/title/text()")[0], self.title)
         self.assertEqual(annot1.xpath("/iri/text-annotation/meta/created/text()")[0], self.creation_date)
 
     def test_error_get(self):
         
-        response = self.client.get('http://127.0.0.1:8000/api/'+ VERSION_STR +'/text/get/2')
-        self.assertEqual(response.status_code,404)
+        response = self.client.get('http://127.0.0.1:8000/api/' + VERSION_STR + '/text/get/2')
+        self.assertEqual(response.status_code, 404)
         
         
 class FilterTest(TestCase):
@@ -105,49 +94,49 @@
         
     def test_filter_all(self):
         
-        response = self.client.get('/api/'+ VERSION_STR +'/text/filter/', {'uri':self.uri,'creator':self.user,'limit':"1,1", 'filter':self.filter})
-        self.assertEqual(response.status_code,200)
+        response = self.client.get('/api/' + VERSION_STR + '/text/filter/', {'uri':self.uri, 'creator':self.user, 'limit':"1,1", 'filter':self.filter})
+        self.assertEqual(response.status_code, 200)
         doc = lxml.etree.fromstring(response.content)
-        self.assertEqual(len(doc.xpath("/iri/text-annotation")),1)
+        self.assertEqual(len(doc.xpath("/iri/text-annotation")), 1)
         for elem in doc.xpath("/iri/text-annotation/meta/creator/text()"):
-            self.assertEqual(elem,self.user)
+            self.assertEqual(elem, self.user)
         for elem in doc.xpath("/iri/text-annotation/uri/text()"):
-            self.assertEqual(elem,self.uri)
+            self.assertEqual(elem, self.uri)
         for elem in doc.xpath("/iri/text-annotation/content/text/text()"):
             self.assertTrue(self.filter in elem) 
           
     def test_filter_creator_limit(self):
         
-        response = self.client.get('/api/'+ VERSION_STR +'/text/filter/', {'creator':self.user,'limit':self.limit})
-        self.assertEqual(response.status_code,200)
+        response = self.client.get('/api/' + VERSION_STR + '/text/filter/', {'creator':self.user, 'limit':self.limit})
+        self.assertEqual(response.status_code, 200)
         doc = lxml.etree.fromstring(response.content)
         if self.limit is not None:
-            self.assertEqual(str(len(doc.xpath("/iri/text-annotation"))),self.limit[0])
+            self.assertEqual(str(len(doc.xpath("/iri/text-annotation"))), self.limit[0])
         for elem in doc.xpath("/iri/text-annotation/meta/creator/text()"):
-            self.assertEqual(elem,self.user)
+            self.assertEqual(elem, self.user)
         
     def test_filter_uri(self):
         
-        response = self.client.get('/api/'+ VERSION_STR +'/text/filter/', {'uri':self.uri})
-        self.assertEqual(response.status_code,200)
+        response = self.client.get('/api/' + VERSION_STR + '/text/filter/', {'uri':self.uri})
+        self.assertEqual(response.status_code, 200)
         doc = lxml.etree.fromstring(response.content)
         for elem in doc.xpath("/iri/text-annotation/uri/text()"):
-            self.assertEqual(elem,self.uri)
+            self.assertEqual(elem, self.uri)
             
     def test_filter_annotation_filter(self):
         
-        response = self.client.get('/api/'+ VERSION_STR +'/text/filter/', {'uri':self.uri,'filter':self.filter})
-        self.assertEqual(response.status_code,200)
+        response = self.client.get('/api/' + VERSION_STR + '/text/filter/', {'uri':self.uri, 'filter':self.filter})
+        self.assertEqual(response.status_code, 200)
         doc = lxml.etree.fromstring(response.content)
         for elem in doc.xpath("/iri/text-annotation/content/text/text()"):
             self.assertTrue(self.filter in elem)  
         for elem in doc.xpath("/iri/text-annotation/uri/text()"):
-            self.assertEqual(elem,self.uri)
+            self.assertEqual(elem, self.uri)
 
     def test_filter_none(self):
         
-        response = self.client.get('/api/'+ VERSION_STR +'/text/filter/', {'uri':'uri','creator':'creator','filter':'filter'})
-        self.assertEqual(response.status_code,200)
+        response = self.client.get('/api/' + VERSION_STR + '/text/filter/', {'uri':'uri', 'creator':'creator', 'filter':'filter'})
+        self.assertEqual(response.status_code, 200)
         self.assertEqual(response.content, '<iri/>\n')
         
 
@@ -157,7 +146,7 @@
 # 2. the returned xml contains an empty string
 class DeleteTest(OAuthTestCase):
     
-    fixtures = ['base_data','oauth_data']
+    fixtures = ['base_data', 'oauth_data']
     
     def setUp(self):
                
@@ -168,22 +157,22 @@
         
     def test_delete_annotation(self):
         
-        response = self.client.delete('/api/'+ VERSION_STR +'/text/delete/'+self.id+'')
+        response = self.client.delete('/api/' + VERSION_STR + '/text/delete/' + self.id + '')
         self.assertEqual(response.content, "")
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
         
         self.assertRaises(Annotation.DoesNotExist, Annotation.objects.get, external_id=self.id)
         
     def test_error_delete(self):
         
-        response = self.client.delete('/api/'+ VERSION_STR +'/text/ldt/delete/1')
-        self.assertEqual(response.status_code,404)
+        response = self.client.delete('/api/' + VERSION_STR + '/text/ldt/delete/1')
+        self.assertEqual(response.status_code, 404)
         
 
 # This test creates an annotation, then updates it with new content, and checks that the returned xml contains the updated data
 class UpdateTest(OAuthTestCase):
     
-    fixtures = ['oauth_data','base_data']
+    fixtures = ['oauth_data', 'base_data']
     
     def setUp(self):
         
@@ -192,26 +181,26 @@
         self.description = "texte de description update"
         self.text = "texte selectionne a nouveau lors de la creation de l\'annotation"
         self.contributor = "oaubert"
-        self.content = '<iri><text-annotation><id></id><uri></uri><tags><tag>tag2new</tag><tag>mytag</tag></tags><content><color>'+self.color+'</color><description>'+self.description+'</description><title></title><text>'+self.text+'</text></content><meta><contributor>'+self.contributor+'</contributor><contributor-id>80cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created></created><creator></creator><creator-id></creator-id><modified>2010-11-06 12:33:53.420459</modified></meta></text-annotation></iri>'
+        self.content = '<iri><text-annotation><id></id><uri></uri><tags><tag>tag2new</tag><tag>mytag</tag></tags><content><color>' + self.color + '</color><description>' + self.description + '</description><title></title><text>' + self.text + '</text></content><meta><contributor>' + self.contributor + '</contributor><contributor-id>80cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created></created><creator></creator><creator-id></creator-id><modified>2010-11-06 12:33:53.420459</modified></meta></text-annotation></iri>'
         
         self.set_consumer(CONSUMER_KEY, CONSUMER_SECRET)
         self.client.login(username='jane', password='toto')
         
     def test_update_annotation(self):
         
-        response = self.client.put('/api/'+ VERSION_STR +'/text/update/'+self.id+'', {'content':self.content})        
-        self.assertEqual(response.status_code,200)     
+        response = self.client.put('/api/' + VERSION_STR + '/text/update/' + self.id + '', {'content':self.content})        
+        self.assertEqual(response.status_code, 200)     
         annot = Annotation.objects.get(external_id=self.id)
-        self.assertEqual(str(annot.update_date)[:11],str(datetime.datetime.now())[:11])
-        self.assertEqual(annot.external_id,self.id)
-        self.assertTrue('tag3','tag1' not in annot.tags)
-        self.assertTrue('mytag','tag2new' in annot.tags)
-        self.assertEqual(annot.color,self.color)
-        self.assertEqual(annot.description,self.description)
-        self.assertEqual(annot.text,self.text)
-        self.assertEqual(annot.contributor,self.contributor)
+        self.assertEqual(str(annot.update_date)[:11], str(datetime.datetime.now())[:11])
+        self.assertEqual(annot.external_id, self.id)
+        self.assertTrue('tag3', 'tag1' not in annot.tags)
+        self.assertTrue('mytag', 'tag2new' in annot.tags)
+        self.assertEqual(annot.color, self.color)
+        self.assertEqual(annot.description, self.description)
+        self.assertEqual(annot.text, self.text)
+        self.assertEqual(annot.contributor, self.contributor)
         
     def test_error_update(self):
         
-        response = self.client.put('/api/'+ VERSION_STR +'/text/update/1', {'content':self.content})
-        self.assertEqual(response.status_code,404)
+        response = self.client.put('/api/' + VERSION_STR + '/text/update/1', {'content':self.content})
+        self.assertEqual(response.status_code, 404)
--- a/src/ldt/ldt/text/tests/oauth_tests.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/tests/oauth_tests.py	Wed Apr 20 00:55:58 2011 +0200
@@ -2,20 +2,13 @@
 
 """ Run these tests with 'python manage.py test text'  """
 
-from django.conf import settings, settings
-from django.contrib.auth.models import *
-from django.db import transaction
-from django.test import TestCase
-from ldt.test.client import Client
-from ldt.test.testcases import *
+from ldt.test.testcases import TestCase
 from ldt.text import VERSION_STR
-from ldt.text.models import Annotation
-from ldt.text.views import *
-from oauth2 import Request, SignatureMethod_HMAC_SHA1, SignatureMethod_PLAINTEXT, \
-    generate_nonce
+from oauth2 import Request, SignatureMethod_HMAC_SHA1, generate_nonce
 from oauth_provider.consts import OUT_OF_BAND
-from oauth_provider.models import Resource, Consumer, Token, Nonce
-import logging
+from oauth_provider.models import Consumer, Token
+import datetime
+import lxml
 import time
 import urlparse
 
@@ -62,7 +55,7 @@
         self.parameters_request['scope'] = 'delete'
         
         response = self.client.get("http://127.0.0.1:8000/oauth/request_token/", self.parameters_request)
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
            
         token = list(Token.objects.all())[-1]
         data = urlparse.parse_qs(response.content)
@@ -78,19 +71,19 @@
         }
         
         response = self.client.get("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,302)
+        self.assertEqual(response.status_code, 302)
         self.assertTrue(token.key in response['Location'])
         
         self.client.login(username='jane', password='toto')
         
         response = self.client.get("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,200)
-        self.assertEqual(response.content,'Fake authorize view for example.com.')
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.content, 'Fake authorize view for example.com.')
     
         # fake authorization by the user
         parameters['authorize_access'] = 1
         response = self.client.post("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
         
         token = list(Token.objects.all())[-1]
         self.assertTrue(token.is_approved)
@@ -113,14 +106,14 @@
         self.parameters_protected['oauth_token'] = access_token.key
         self.parameters_protected['oauth_timestamp'] = str(int(time.time()))
         
-        oauth_request = Request.from_token_and_callback(access_token, http_url='http://testserver/api/'+VERSION_STR+'/text/delete/z2c1d1fa-629d-4520-a3d2-955b4f2582c0', parameters=self.parameters_protected, http_method="DELETE")
+        oauth_request = Request.from_token_and_callback(access_token, http_url='http://testserver/api/' + VERSION_STR + '/text/delete/z2c1d1fa-629d-4520-a3d2-955b4f2582c0', parameters=self.parameters_protected, http_method="DELETE")
         signature_method = SignatureMethod_HMAC_SHA1()
         signature = signature_method.sign(oauth_request, Consumer.objects.get(name="example.com"), access_token)
 
         self.parameters_protected['oauth_signature'] = signature
-        response = self.client.delete("/api/"+VERSION_STR+"/text/delete/z2c1d1fa-629d-4520-a3d2-955b4f2582c0", self.parameters_protected)
+        response = self.client.delete("/api/" + VERSION_STR + "/text/delete/z2c1d1fa-629d-4520-a3d2-955b4f2582c0", self.parameters_protected)
         self.assertEqual(response.content, "")
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
         
         self.client.logout()
         access_token.delete()
@@ -131,7 +124,7 @@
         ## REQUEST TOKEN
         self.parameters_request['scope'] = 'create'
         response = self.client.get("/oauth/request_token/", self.parameters_request)
-        self.assertEqual(response.status_code,200)   
+        self.assertEqual(response.status_code, 200)   
         token = list(Token.objects.all())[-1]
         data = urlparse.parse_qs(response.content)
         self.assertEqual(token.key, data["oauth_token"][0])
@@ -145,19 +138,19 @@
         }
         
         response = self.client.get("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,302)
+        self.assertEqual(response.status_code, 302)
         self.assertTrue(token.key in response['Location'])
         
         self.client.login(username='jane', password='toto')
         
         response = self.client.get("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,200)
-        self.assertEqual(response.content,'Fake authorize view for example.com.')
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.content, 'Fake authorize view for example.com.')
     
         # fake authorization by the user
         parameters['authorize_access'] = 1
         response = self.client.post("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
         token = list(Token.objects.all())[-1]
         self.assertTrue(token.is_approved)
         
@@ -180,15 +173,15 @@
         self.parameters_protected['oauth_timestamp'] = str(int(time.time()))
         self.parameters_protected['content'] = '<iri><text-annotation><id>f2c1d1fa-629d-4520-a3d2-955b4f2582c0</id><uri>http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168</uri><tags><tag>tag1</tag><tag>tag2</tag></tags><content><color>#AAAAAA</color><description><![CDATA[texte de description]]></description><title><![CDATA[titre de l\'annotation]]></title><text><![CDATA[texte selectionne lors de la creation de l\'annotation]]></text></content><meta><contributor>oaubert</contributor><contributor-id>79cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created>2010-09-06 12:33:53.417550</created><creator>oaubert</creator><creator-id>79cd0532-1dda-4130-b351-6a181130a7c9</creator-id><modified>2010-09-06 12:33:53.420459</modified></meta></text-annotation></iri>'
         
-        oauth_request = Request.from_token_and_callback(access_token, http_url='http://testserver/api/'+VERSION_STR+'/text/create/', parameters=self.parameters_protected, http_method="POST")
+        oauth_request = Request.from_token_and_callback(access_token, http_url='http://testserver/api/' + VERSION_STR + '/text/create/', parameters=self.parameters_protected, http_method="POST")
         signature_method = SignatureMethod_HMAC_SHA1()
         signature = signature_method.sign(oauth_request, Consumer.objects.get(name="example.com"), access_token)
 
         self.parameters_protected['oauth_signature'] = signature
-        response = self.client.post("/api/"+VERSION_STR+"/text/create/", self.parameters_protected)
+        response = self.client.post("/api/" + VERSION_STR + "/text/create/", self.parameters_protected)
         annot1 = lxml.etree.fromstring(response.content)
         self.assertEqual(annot1.xpath("/iri/text-annotation/meta/created/text()")[0][:11], str(datetime.datetime.now())[:11])
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
         
         self.client.logout()
         access_token.delete()
@@ -199,7 +192,7 @@
         self.parameters_request['scope'] = 'update'
         
         response = self.client.get("/oauth/request_token/", self.parameters_request)
-        self.assertEqual(response.status_code,200)   
+        self.assertEqual(response.status_code, 200)   
         
         token = list(Token.objects.all())[-1]
         data = urlparse.parse_qs(response.content)
@@ -214,19 +207,19 @@
         }
         
         response = self.client.get("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,302)
+        self.assertEqual(response.status_code, 302)
         self.assertTrue(token.key in response['Location'])
         
         self.client.login(username='jane', password='toto')
         
         response = self.client.get("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,200)
-        self.assertEqual(response.content,'Fake authorize view for example.com.')
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.content, 'Fake authorize view for example.com.')
     
         # fake authorization by the user
         parameters['authorize_access'] = 1
         response = self.client.post("/oauth/authorize/", parameters)
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(response.status_code, 200)
         token = list(Token.objects.all())[-1]
         self.assertTrue(token.is_approved)
         
@@ -249,18 +242,18 @@
         self.parameters_protected['oauth_timestamp'] = str(int(time.time()))
         self.parameters_protected['content'] = '<iri><text-annotation><id></id><uri></uri><tags><tag>tag2new</tag><tag>mytag</tag></tags><content><color>#DDDDDD</color><description><![CDATA[texte de description update]]></description><title></title><text><![CDATA[texte selectionne a nouveau lors de la creation de l\'annotation]]></text></content><meta><contributor>oaubert</contributor><contributor-id>80cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created></created><creator></creator><creator-id></creator-id><modified>2010-11-06 12:33:53.420459</modified></meta></text-annotation></iri>'
         
-        oauth_request = Request.from_token_and_callback(access_token, http_url='http://testserver/api/'+VERSION_STR+'/text/update/z2c1d1fa-629d-4520-a3d2-955b4f2582c0', parameters=self.parameters_protected, http_method="PUT")
+        oauth_request = Request.from_token_and_callback(access_token, http_url='http://testserver/api/' + VERSION_STR + '/text/update/z2c1d1fa-629d-4520-a3d2-955b4f2582c0', parameters=self.parameters_protected, http_method="PUT")
         signature_method = SignatureMethod_HMAC_SHA1()
         signature = signature_method.sign(oauth_request, Consumer.objects.get(name="example.com"), access_token)
 
         self.parameters_protected['oauth_signature'] = signature
-        response = self.client.put("/api/"+VERSION_STR+"/text/update/z2c1d1fa-629d-4520-a3d2-955b4f2582c0", self.parameters_protected)
+        response = self.client.put("/api/" + VERSION_STR + "/text/update/z2c1d1fa-629d-4520-a3d2-955b4f2582c0", self.parameters_protected)
         doc = lxml.etree.fromstring(response.content)
-        self.assertEqual(doc.xpath("/iri/text-annotation/id/text()")[0],"z2c1d1fa-629d-4520-a3d2-955b4f2582c0")
-        self.assertTrue('tag3','tag1' not in doc.xpath("/iri/text-annotation/tags/tag/text()"))
-        self.assertTrue('mytag','tag2new' in doc.xpath("/iri/text-annotation/tags/tag/text()"))
-        self.assertEqual(doc.xpath("/iri/text-annotation/meta/modified/text()")[0][:11],str(datetime.datetime.now())[:11])
-        self.assertEqual(response.status_code,200)
+        self.assertEqual(doc.xpath("/iri/text-annotation/id/text()")[0], "z2c1d1fa-629d-4520-a3d2-955b4f2582c0")
+        self.assertTrue('tag3', 'tag1' not in doc.xpath("/iri/text-annotation/tags/tag/text()"))
+        self.assertTrue('mytag', 'tag2new' in doc.xpath("/iri/text-annotation/tags/tag/text()"))
+        self.assertEqual(doc.xpath("/iri/text-annotation/meta/modified/text()")[0][:11], str(datetime.datetime.now())[:11])
+        self.assertEqual(response.status_code, 200)
         
         self.client.logout()
         access_token.delete()
--- a/src/ldt/ldt/text/tests/server_tests.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/tests/server_tests.py	Wed Apr 20 00:55:58 2011 +0200
@@ -2,22 +2,11 @@
 
 """ Run these tests with 'python manage.py test text'  """
 
-from django.conf import settings
-from django.contrib.auth.models import *
-from django.test import TestCase
-from ldt.core.models import Owner
-from ldt.test.testcases import OAuthWebTestCase, OAuthTestCase, WebTestCase 
+from ldt.test.testcases import OAuthWebTestCase, WebTestCase
 from ldt.text import VERSION_STR
-from ldt.text.models import *
-from ldt.text.views import *
-from oauth_provider.models import Resource, Consumer, Token, Nonce
+from ldt.text.models import Annotation
 import datetime
-import logging
 import lxml.etree
-import time
-import unittest
-import urllib
-import uuid
 
 CONSUMER_KEY = 'dpf43f3p2l4k3l03'
 CONSUMER_SECRET = 'kd94hf93k423kf44'
@@ -25,7 +14,7 @@
 
 class OnServerGlobalTest(OAuthWebTestCase):
     
-    fixtures = ['oauth_data','base_data']
+    fixtures = ['oauth_data', 'base_data']
     
     def setUp(self):
         
@@ -37,8 +26,8 @@
         self.contributor = "oaubert"
         self.creator = "wakimd"
         self.uri = "http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168"
-        self.content1 = '<iri><text-annotation><id>'+self.id+'</id><uri>'+self.uri+'</uri><tags><tag>tag1</tag><tag>tag2</tag></tags><content><color>#AAAAAA</color><description><![CDATA[texte de description]]></description><title>'+self.title+'</title><text>'+self.text+'</text></content><meta><contributor>oaubert</contributor><contributor-id>79cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created>2010-09-06 12:33:53.417550</created><creator>'+self.creator+'</creator><creator-id>79cd0532-1dda-4130-b351-6a181130a7c9</creator-id><modified>2010-09-06 12:33:53.420459</modified></meta></text-annotation></iri>'        
-        self.contentupdate = '<iri><text-annotation><id></id><uri></uri><tags><tag>tag1</tag><tag>tag2new</tag><tag>tag3</tag></tags><content><color>#DDDDDD</color><description>'+self.descupdate+'</description><title></title><text>'+self.textupdate+'</text></content><meta><contributor>'+self.contributor+'</contributor><contributor-id>80cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created></created><creator></creator><creator-id></creator-id><modified>2010-11-06 12:33:53.420459</modified></meta></text-annotation></iri>'
+        self.content1 = '<iri><text-annotation><id>' + self.id + '</id><uri>' + self.uri + '</uri><tags><tag>tag1</tag><tag>tag2</tag></tags><content><color>#AAAAAA</color><description><![CDATA[texte de description]]></description><title>' + self.title + '</title><text>' + self.text + '</text></content><meta><contributor>oaubert</contributor><contributor-id>79cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created>2010-09-06 12:33:53.417550</created><creator>' + self.creator + '</creator><creator-id>79cd0532-1dda-4130-b351-6a181130a7c9</creator-id><modified>2010-09-06 12:33:53.420459</modified></meta></text-annotation></iri>'        
+        self.contentupdate = '<iri><text-annotation><id></id><uri></uri><tags><tag>tag1</tag><tag>tag2new</tag><tag>tag3</tag></tags><content><color>#DDDDDD</color><description>' + self.descupdate + '</description><title></title><text>' + self.textupdate + '</text></content><meta><contributor>' + self.contributor + '</contributor><contributor-id>80cd0532-1dda-4130-b351-6a181130a7c9</contributor-id><created></created><creator></creator><creator-id></creator-id><modified>2010-11-06 12:33:53.420459</modified></meta></text-annotation></iri>'
         
         self.set_login_url("/auth_accounts/login/")
         self.set_consumer(CONSUMER_KEY, CONSUMER_SECRET)
@@ -49,68 +38,68 @@
         self.assertTrue(self.client.login(username='jane', password='toto'))
         
         #test POST
-        creation = self.client.post("/api/"+VERSION_STR+"/text/create/", data={'content': self.content1})            
-        self.assertEqual(creation.status_code,200)
+        creation = self.client.post("/api/" + VERSION_STR + "/text/create/", data={'content': self.content1})            
+        self.assertEqual(creation.status_code, 200)
         annot = Annotation.objects.get(external_id=self.id)
         self.assertEqual(str(annot.creation_date)[:11], str(datetime.datetime.now())[:11])
-        self.assertEqual(annot.text,self.text)
-        self.assertEqual(len(annot.tags.split(",")),2)
+        self.assertEqual(annot.text, self.text)
+        self.assertEqual(len(annot.tags.split(",")), 2)
         
         #test GET
-        get = self.client.get("/api/"+VERSION_STR+"/text/get/"+self.id+"")
-        self.assertEqual(get.status_code,200)
+        get = self.client.get("/api/" + VERSION_STR + "/text/get/" + self.id + "")
+        self.assertEqual(get.status_code, 200)
         annot = lxml.etree.fromstring(get.content)
-        self.assertTrue('tag1','tag2' in annot.xpath("/iri/text-annotation/tags/tag/text()"))
-        self.assertEqual(annot.xpath("/iri/text-annotation/content/title/text()")[0],self.title)
+        self.assertTrue('tag1', 'tag2' in annot.xpath("/iri/text-annotation/tags/tag/text()"))
+        self.assertEqual(annot.xpath("/iri/text-annotation/content/title/text()")[0], self.title)
         
         #test OPTIONS
-        options = self.client.options("/api/"+VERSION_STR+"/text/get/"+self.id+"")
-        self.assertEqual(options.status_code,200)
+        options = self.client.options("/api/" + VERSION_STR + "/text/get/" + self.id + "")
+        self.assertEqual(options.status_code, 200)
         self.assertEqual(options.content, get.content)
        
         #test HEAD
-        head = self.client.head("/api/"+VERSION_STR+"/text/get/"+self.id+"")
-        self.assertEqual(head.status_code,200)
-        self.assertEqual(head['content-type'],'text/xml;charset=utf-8')
-        self.assertEqual(head['content-language'],'fr-fr')
-        self.assertEqual(head.content,'')
+        head = self.client.head("/api/" + VERSION_STR + "/text/get/" + self.id + "")
+        self.assertEqual(head.status_code, 200)
+        self.assertEqual(head['content-type'], 'text/xml;charset=utf-8')
+        self.assertEqual(head['content-language'], 'fr-fr')
+        self.assertEqual(head.content, '')
                
         #test LOGOUT
         self.client.logout()
         
-        creation = self.client.post("/api/"+VERSION_STR+"/text/create/", data={'content': self.content1})            
-        self.assertEqual(creation.status_code,401)
+        creation = self.client.post("/api/" + VERSION_STR + "/text/create/", data={'content': self.content1})            
+        self.assertEqual(creation.status_code, 401)
         
         self.assertTrue(self.client.login(username='jane', password='toto'))
 
         # filter
-        filt1 = self.client.get("/api/"+VERSION_STR+"/text/filter/", data={"uri":self.uri})
-        self.assertEqual(filt1.status_code,200)
+        filt1 = self.client.get("/api/" + VERSION_STR + "/text/filter/", data={"uri":self.uri})
+        self.assertEqual(filt1.status_code, 200)
         doc = lxml.etree.fromstring(filt1.content)
-        self.assertEqual(len(doc.xpath("/iri/text-annotation")),2)
+        self.assertEqual(len(doc.xpath("/iri/text-annotation")), 2)
         for elem in doc.xpath("/iri/text-annotation/uri/text()"):
-            self.assertEqual(elem,self.uri)
+            self.assertEqual(elem, self.uri)
 
-        filt2 = self.client.get("/api/"+VERSION_STR+"/text/filter/", data={"creator":self.contributor})
-        self.assertEqual(filt2.status_code,200)
+        filt2 = self.client.get("/api/" + VERSION_STR + "/text/filter/", data={"creator":self.contributor})
+        self.assertEqual(filt2.status_code, 200)
         self.assertEqual(filt2.content, '<iri/>\n')
 
         #test PUT
-        update = self.client.put("/api/"+VERSION_STR+"/text/update/"+self.id+"", data={'content':self.contentupdate})
-        self.assertEqual(update.status_code,200)
+        update = self.client.put("/api/" + VERSION_STR + "/text/update/" + self.id + "", data={'content':self.contentupdate})
+        self.assertEqual(update.status_code, 200)
         annot = Annotation.objects.get(external_id=self.id)
-        self.assertEqual(str(annot.creation_date)[:11],str(datetime.datetime.now())[:11])
-        self.assertEqual(annot.external_id,self.id)
-        self.assertTrue('tag1','tag2' not in annot.tags)
-        self.assertTrue('mytag','tag2new' in annot.tags)
-        self.assertEqual(annot.description,self.descupdate)
-        self.assertEqual(annot.text,self.textupdate)
-        self.assertEqual(annot.contributor,self.contributor)
+        self.assertEqual(str(annot.creation_date)[:11], str(datetime.datetime.now())[:11])
+        self.assertEqual(annot.external_id, self.id)
+        self.assertTrue('tag1', 'tag2' not in annot.tags)
+        self.assertTrue('mytag', 'tag2new' in annot.tags)
+        self.assertEqual(annot.description, self.descupdate)
+        self.assertEqual(annot.text, self.textupdate)
+        self.assertEqual(annot.contributor, self.contributor)
         
         #test DELETE
-        delete = self.client.delete("/api/"+VERSION_STR+"/text/delete/"+self.id+"")
+        delete = self.client.delete("/api/" + VERSION_STR + "/text/delete/" + self.id + "")
         self.assertEqual(delete.content, "")
-        self.assertEqual(delete.status_code,200)   
+        self.assertEqual(delete.status_code, 200)   
         self.assertRaises(Annotation.DoesNotExist, Annotation.objects.get, external_id=self.id)  
 
         self.client.logout()
@@ -120,23 +109,23 @@
         
         self.assertTrue(self.client.login(username='jane', password='toto'))
         
-        creation = self.client.post("/api/"+VERSION_STR+"/text/create/", data={'content': self.content1})            
-        self.assertEqual(creation.status_code,200)
+        creation = self.client.post("/api/" + VERSION_STR + "/text/create/", data={'content': self.content1})            
+        self.assertEqual(creation.status_code, 200)
         
-        creation = self.client.post("/api/"+VERSION_STR+"/text/create/", data={'content': self.content1})            
-        self.assertEqual(creation.status_code,409)
+        creation = self.client.post("/api/" + VERSION_STR + "/text/create/", data={'content': self.content1})            
+        self.assertEqual(creation.status_code, 409)
         
-        get = self.client.get("/api/"+VERSION_STR+"/text/get/1")
-        self.assertEqual(get.status_code,404)
+        get = self.client.get("/api/" + VERSION_STR + "/text/get/1")
+        self.assertEqual(get.status_code, 404)
         
-        update = self.client.put('/api/'+ VERSION_STR +'/text/update/1', {'content':self.contentupdate})
-        self.assertEqual(update.status_code,404)
+        update = self.client.put('/api/' + VERSION_STR + '/text/update/1', {'content':self.contentupdate})
+        self.assertEqual(update.status_code, 404)
         
-        delete = self.client.delete("/api/"+VERSION_STR+"/text/delete/1")
-        self.assertEqual(delete.status_code,404)
+        delete = self.client.delete("/api/" + VERSION_STR + "/text/delete/1")
+        self.assertEqual(delete.status_code, 404)
         
-        delete = self.client.delete("/api/"+VERSION_STR+"/text/delete/"+self.id+"")
-        self.assertEqual(delete.status_code,200)
+        delete = self.client.delete("/api/" + VERSION_STR + "/text/delete/" + self.id + "")
+        self.assertEqual(delete.status_code, 200)
         self.assertEqual(delete.content, "")
         
         self.client.logout()
@@ -152,9 +141,9 @@
     def test_get(self):
         self.assertTrue(self.client.login(username='jane', password='toto'))
         
-        get = self.client.get("/api/"+VERSION_STR+"/text/get/z2c1d1fa-629d-4520-a3d2-955b4f2582c0")
-        self.assertEqual(get.status_code,200)
+        get = self.client.get("/api/" + VERSION_STR + "/text/get/z2c1d1fa-629d-4520-a3d2-955b4f2582c0")
+        self.assertEqual(get.status_code, 200)
         annot = lxml.etree.fromstring(get.content)
-        self.assertTrue('tag1','tag2' in annot.xpath("/iri/text-annotation/tags/tag/text()"))
+        self.assertTrue('tag1', 'tag2' in annot.xpath("/iri/text-annotation/tags/tag/text()"))
         
-        
\ No newline at end of file
+        
--- a/src/ldt/ldt/text/urls.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/urls.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,5 +1,4 @@
-from django.conf.urls.defaults import *
-from ldt.management import test_ldt
+from django.conf.urls.defaults import patterns, url
 
 # Uncomment the next two lines to enable the admin:
 # from django.contrib import admin
@@ -11,4 +10,4 @@
     url(r'^get/(?P<id>.*)$', 'views.get_annotation'),
     url(r'^delete/(?P<id>.*)$', 'views.delete_annotation'),
     url(r'^update/(?P<id>.*)$', 'views.update_annotation'),
-)
\ No newline at end of file
+)
--- a/src/ldt/ldt/text/utils.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/utils.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,10 +1,6 @@
 from django.conf import settings
-from ldt.ldt_utils import ANALYZER, STORE
-import base64
-import django.core.urlresolvers
+from ldt.ldt_utils import STORE
 import lucene
-import lxml.etree
-import urllib
 import uuid
 
 __BOOLEAN_DICT = {
@@ -51,7 +47,7 @@
         res = []
         for hit in hits.scoreDocs:
             doc = indexSearcher.doc(hit.doc)
-            res.append({"external_id":doc.get("external_id"),"title":doc.get("title")})
+            res.append({"external_id":doc.get("external_id"), "title":doc.get("title")})
         indexSearcher.close()
         return res
 
--- a/src/ldt/ldt/text/views.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/text/views.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,44 +1,17 @@
-from django.conf import settings
-from django.contrib.auth.decorators import login_required
-from django.core.urlresolvers import reverse
 from django.db import IntegrityError
 from django.db.models import Q
-from django.forms.util import ErrorList
-from django.http import HttpResponse, Http404, HttpResponseRedirect, \
-    HttpResponseForbidden, HttpResponseServerError, HttpResponseBadRequest
-from django.shortcuts import render_to_response, get_object_or_404, \
-    get_list_or_404
-from django.template import RequestContext
-from django.template.loader import render_to_string
-from django.utils.html import escape
-from django.utils.translation import ugettext as _, ungettext
+from django.http import HttpResponse, Http404
 from django.views.decorators.csrf import csrf_exempt
-from httplib import CONFLICT
-from ldt.core.models import Owner
-from ldt.text.models import *
-from ldt.text.utils import boolean_convert
-from lxml import etree
-from lxml.html import fromstring, fragment_fromstring
-from string import Template
+from ldt.text.models import Annotation
+from ldt.text.utils import TextSearch, generate_uuid
+from oauth_provider.decorators import oauth_required
 from urllib2 import urlparse
-from utils import *
-import StringIO
-import cgi
-import django.core.urlresolvers
-import ldt.auth as ldt_auth
-import ldt.utils.path as ldt_utils_path
-import logging
-import lucene
-import tempfile
-import uuid
-from tagging.models import Tag
-from oauth_provider.decorators import * 
+import lxml
 
 
 ## Filters the annotation depending on the request parameters
 ## Returns an xml containing the resulting annotations
 def filter_annotation(request, uri=None, filter=None, limit=None, creator=None):
-    annotlist = None
     query = Q()    
     
     if request.GET.get('uri'):
@@ -50,7 +23,7 @@
     
     if request.GET.get('filter') and len(request.GET.get('filter')) > 0:
         search = TextSearch()
-        res = search.query("text",request.GET.get('filter'))        
+        res = search.query("text", request.GET.get('filter'))        
         for r in res:
             annotlist.append(r)
     
@@ -166,16 +139,16 @@
 @csrf_exempt
 def update_annotation(request, id):
     
-    put_data={}
+    put_data = {}
     if request.GET != {}:
         put_data = request.GET.copy()
     elif request.raw_post_data is not None:
-        for k,v in urlparse.parse_qs(request.raw_post_data).iteritems():
-            if len(v)>1:
+        for k, v in urlparse.parse_qs(request.raw_post_data).iteritems():
+            if len(v) > 1:
                 for item in v:
-                    put_data[k]= item
+                    put_data[k] = item
             else:
-                put_data[k]= v[0]
+                put_data[k] = v[0]
     
     try:
         annot = Annotation.objects.get(external_id=id)
--- a/src/ldt/ldt/user/forms.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/user/forms.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,10 +1,10 @@
 from django import forms
-from django.contrib.auth.models import User, Permission, Group
-from django.forms.util import ErrorList
 from django.contrib.auth.forms import UserCreationForm
+from django.contrib.auth.models import Permission
+from django.forms.util import ErrorList
 from django.utils.translation import gettext as _
+from ldt.management import get_content_type_list
 from models import ldt, IriGroup
-from ldt.management import get_content_type_list
 
 
 class ldtForm(UserCreationForm):
--- a/src/ldt/ldt/user/models.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/user/models.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,7 +1,6 @@
-from django.db import models
+from django.contrib import admin
 from django.contrib.auth.models import User, Group, UserManager
-from django.utils.translation import gettext as _
-from django.contrib import admin
+from django.db import models
 import datetime
 
 
--- a/src/ldt/ldt/user/templatetags/logintag.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/user/templatetags/logintag.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,5 +1,4 @@
 from django import template
-from django.template.loader import get_template
 
 register = template.Library() 
 
--- a/src/ldt/ldt/user/views.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/user/views.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,15 +1,14 @@
-from django.conf import settings
-from django.http import HttpResponse, HttpResponseRedirect
-from django.shortcuts import render_to_response
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.decorators import login_required
-# from django.contrib.sites.models import Site, RequestSite
-from django.template import RequestContext, Context, loader
+from django.core.urlresolvers import reverse
+from django.http import HttpResponse, HttpResponseRedirect
+from django.shortcuts import render_to_response
+from django.template import RequestContext, loader
+from django.utils import simplejson
 from django.utils.translation import ugettext as _
-from django.core.urlresolvers import reverse
 from forms import EmailChangeForm
-from django.utils import simplejson
 from ldt.management import test_cms, test_ldt
+# from django.contrib.sites.models import Site, RequestSite
 
 
 def home(request):
--- a/src/ldt/ldt/utils/__init__.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/utils/__init__.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,4 +1,4 @@
 
 def Property(func):
     return property(**func())
-    
\ No newline at end of file
+    
--- a/src/ldt/ldt/utils/context_processors.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/utils/context_processors.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,6 +1,6 @@
 from django.conf import settings
+import ldt
 
-import ldt
 
 def ldtcontext(request):
     return {'BASE_URL': settings.BASE_URL, 'MEDIA_URL': settings.MEDIA_URL, 'TC1': 'TC1', \
--- a/src/ldt/ldt/utils/path.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/utils/path.py	Wed Apr 20 00:55:58 2011 +0200
@@ -2,8 +2,8 @@
 Some small file related utilities
 """
 
+import string
 import unicodedata
-import string
 
 validFilenameChars = "-_.() %s%s" % (string.ascii_letters, string.digits)
 
--- a/src/ldt/ldt/utils/threading.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/utils/threading.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,6 +1,6 @@
-import threading
+import ctypes
 import inspect
-import ctypes
+import threading
  
 def _async_raise(tid, exctype):
     """raises the exception, performs cleanup if needed"""
--- a/src/ldt/ldt/utils/zipfileext.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/ldt/utils/zipfileext.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,4 +1,5 @@
-import zipfile, os, os.path
+import zipfile
+import os.path
 
 class ZipFileExt(zipfile.ZipFile):
     def unzip_into_dir(self, dir):
--- a/src/ldt/setup.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/src/ldt/setup.py	Wed Apr 20 00:55:58 2011 +0200
@@ -28,7 +28,7 @@
 
 #TODO : uses find_packages form setuptools and teh mercurial extension
 
-for dirpath, dirnames, filenames in os.walk(SOURCE_DIR,True):
+for dirpath, dirnames, filenames in os.walk(SOURCE_DIR, True):
     # Ignore dirnames that start with '.'
     if dirpath in path_processed:
         continue
@@ -45,16 +45,16 @@
         for ldirpath, ldirnames, lfilenames in os.walk(dirpath):
             path_processed.append(ldirpath)
             new_data_files.extend([os.path.join(ldirpath[len(base_path):], f) for f in lfilenames])
-        data_files.setdefault(key,[]).extend(new_data_files)
+        data_files.setdefault(key, []).extend(new_data_files)
 
 #write MANIFEST.in
 
 m = open("MANIFEST.in", "w")
 
 m.write("exclude MANIFEST.in\n")
-for key,file_list in data_files.iteritems():
+for key, file_list in data_files.iteritems():
     for filename in file_list:
-        m.write("include %s/%s\n" % (key.replace(".","/"), filename))
+        m.write("include %s/%s\n" % (key.replace(".", "/"), filename))
 m.close()
 
 setup(
@@ -62,8 +62,8 @@
     version=version,
     author='Yves-Marie Haussonne (IRI)',
     author_email='contact@iri.centrepompidou.fr',
-    packages = packages,
-    package_data = data_files,
+    packages=packages,
+    package_data=data_files,
     scripts=[],
     url='https://www.iri.centrepompidou.fr/dev/hg/platform',
     license='LICENSE.txt',
--- a/web/ldtplatform/settings.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/web/ldtplatform/settings.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,6 +1,5 @@
 #@PydevCodeAnalysisIgnore
 import os.path
-from social_auth_settings import *
 # Django settings for project.
 
 DEBUG = True
@@ -168,8 +167,13 @@
 OAUTH_CALLBACK_VIEW = 'oauth_provider.views.fake_callback_view'
 TEST_WEBSERVER_ADDRPORT = "127.0.0.1:8888"
 
+FACEBOOK_APP_ID = '163134140411313'
+FACEBOOK_API_SECRET = 'f25e0754a44f0d90d3f4d9ea961ff012'
+
+SOCIAL_AUTH_COMPLETE_URL_NAME  = 'complete'
+SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'associate_complete'
+
 from config import *
-#from socialauthsettings import *
 
 LOGIN_URL = BASE_URL + 'accounts/login/'
 LOGOUT_URL = BASE_URL + 'accounts/disconnect/'
@@ -180,12 +184,7 @@
 
 LOGIN_ERROR_URL = BASE_URL + 'accounts/login'
 
-FACEBOOK_APP_ID = '163134140411313'
-FACEBOOK_API_SECRET = 'f25e0754a44f0d90d3f4d9ea961ff012'
-
-SOCIAL_AUTH_COMPLETE_URL_NAME  = 'complete'
-SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'associate_complete'
-
 GLOBAL_LOG_LEVEL = LOG_LEVEL
 GLOBAL_LOG_HANDLERS = [{'handler':logging.FileHandler(LOG_FILE), 'format':"%(asctime)s - %(levelname)s : %(message)s"}]
 
+
--- a/web/ldtplatform/urls.py	Mon Apr 18 18:34:49 2011 +0200
+++ b/web/ldtplatform/urls.py	Wed Apr 20 00:55:58 2011 +0200
@@ -1,8 +1,9 @@
-from django.conf.urls.defaults import patterns, include, handler500, handler404, url
+from django.conf.urls.defaults import patterns, include, url
 from django.contrib import admin
+from ldt.auth.views import login as pf_login
 from ldt.text import VERSION_STR
-from django.conf import settings
-from ldt.auth.views import login as pf_login
+
+#from django.conf import settings
 
 # Uncomment the next two lines to enable the admin:
 admin.autodiscover()
--- a/web/ldtplatform/utils/context_processors.py	Mon Apr 18 18:34:49 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-from django.conf import settings
-import ldtplatform #@UnresolvedImport
-import ldt
-
-#def version(request):
-#    return {'VERSION': "platform: %s - web: %s" % (ldt.get_version(),ldtplatform.get_version()) }
-
-#def base(request):
-#    return {'BASE_URL': settings.BASE_URL, 'MEDIA_URL': settings.MEDIA_URL, 'TC2': 'TC2' }
-
-#def web(request):
-#    return {'WEB_URL': settings.WEB_URL }