Example #1
0
def whoami(request, format='json'):
    if ServicesMetadata.objects.count() == 1:
        services_metadata = ServicesMetadata.objects.all()[0]
        _md = model_to_dict(services_metadata)
        domain = Site.objects.all()[0].domain
        _md['uri'] = 'http://%s' % domain
        _md['sk_domain_name'] = domain
        # TODO sistemare
        _md['endpoint_SOS_url'] = settings.SITEURL + 'observations/sos'
    else:
        _md = {
            'message': 'Missing metadata'
            }

    # software
    _md['software'] = {
        'ubuntu': get_ubuntu_release(),
        'java': get_java_version(),
        'tomcat': get_tomcat_version(),
        'postgresql': get_postgres_version(),
        'postgis': get_postgis_version(),
        'python': sys.version,
        'getit': geosk_version(),
        'geonode': geonode_version(),
        'pycsw': pycsw.__version__,
        'django': django_version(),
        'sos': get_sos_version()
    }

    return JsonResponse(_md)
Example #2
0
class JobDataFuncTestFile(ACompatDataFile):
    upload_to_data = job_data
    job = models.ForeignKey(TestJobTwo, on_delete=models.CASCADE)
    if StrictVersion('1.9.0') <= StrictVersion(
            django_version()) < StrictVersion('1.10.0'):
        data = models.FileField(upload_to=ADataFile.upload_to_data,
                                max_length=256)
Example #3
0
    def clean_content(self):
        content = self.cleaned_data['content']

        if not content and self.cleaned_data['is_custom']:
            template_name = self.cleaned_data['template_name']
            for template_loader in loader.template_source_loaders:
                try:
                    content = template_loader.load_template_source(
                        template_name)[0]
                    break
                except Exception:
                    continue

        if django_version() >= '1.5':
            from django.test.client import RequestFactory
            request = RequestFactory().get('/')
        else:
            request = http.HttpRequest()
        request.session = {}
        context = template.RequestContext(
            request,
            {'page_slug': self.instance.title, 'page': self.instance})
        if content:
            try:
                template.Template(content).render(context)
            except Exception:
                import traceback; traceback.print_exc()
                raise forms.ValidationError(_("Template error detected"))
        return content
Example #4
0
    def __init__(self):
        self.methods = {
            "PRIVMSG": self.msg,
            "ACTION": self.me,
            "NOTICE": self.notice,
            "TOPIC": self.topic,
            "RESET": self.reimport,
            "MULTIPLE": self.multiple,
        }
        self.chanmodes = {}
        self.whoreplies = {}
        self.hostmask = ""  # until we see ourselves speak, we do not know
        self.servername = ""
        self.lineRate = 1

        self.versionName = "Yardbird"
        self.versionNum = VERSION
        udata = uname()
        self.versionEnv = "Twisted %s and Django %s on %s-%s" % (
            twisted_version.short(),
            django_version(),
            udata[0],
            udata[4],
        )
        self.sourceURL = "http://zork.net/~nick/yardbird/ "
        self.realname = "Charlie Parker Jr."
        self.fingerReply = str(settings.INSTALLED_APPS)
        self.l = task.LoopingCall(self.PING)
Example #5
0
class ACompatDataFile(ADataFile):
    class Meta:
        abstract = True

    if StrictVersion('1.10.0') <= StrictVersion(django_version()):
        data = models.FileField(upload_to=ADataFile.upload_to_data,
                                max_length=256)
Example #6
0
    def __init__(self):
        self.methods = {
            'PRIVMSG': self.msg,
            'ACTION': self.me,
            'NOTICE': self.notice,
            'TOPIC': self.topic,
            'RESET': self.reimport,
            'MULTIPLE': self.multiple,
        }
        self.chanmodes = {}
        self.whoreplies = {}
        self.hostmask = ''  # until we see ourselves speak, we do not know
        self.servername = ''
        self.lineRate = 1

        self.versionName = 'Yardbird'
        self.versionNum = VERSION
        udata = uname()
        self.versionEnv = 'Twisted %s and Django %s on %s-%s' % \
                (twisted_version.short(), django_version(), udata[0],
                 udata[4])
        self.sourceURL = 'http://zork.net/~nick/yardbird/ '
        self.realname = 'Charlie Parker Jr.'
        self.fingerReply = str(settings.INSTALLED_APPS)
        self.l = task.LoopingCall(self.PING)
Example #7
0
    def clean_content(self):
        content = self.cleaned_data['content']

        if not content and self.cleaned_data['is_custom']:
            template_name = self.cleaned_data['template_name']
            for template_loader in loader.template_source_loaders:
                try:
                    content = template_loader.load_template_source(
                        template_name)[0]
                    break
                except Exception:
                    continue

        if django_version() >= '1.5':
            from django.test.client import RequestFactory
            request = RequestFactory().get('/')
        else:
            request = http.HttpRequest()
        request.session = {}
        context = template.RequestContext(request, {
            'page_slug': self.instance.title,
            'page': self.instance
        })
        if content:
            try:
                template.Template(content).render(context)
            except Exception:
                import traceback
                traceback.print_exc()
                raise forms.ValidationError(_("Template error detected"))
        return content
Example #8
0
def about(request):

    LOGGER.debug('About page accessed', request)

    server_version = connection.pg_version
    env = (
        {
            'name': 'Python',
            'version': python_version()
        },
        {
            'name': 'Django',
            'version': django_version()
        },
        {
            'name':
            'PostgreSQL',
            'version':
            '{:d}.{:d}.{:d}'.format(server_version // 10000,
                                    (server_version // 100) % 100,
                                    server_version % 100)
        },
        {
            'name': 'Platforma',
            'version': '{0}-{2}'.format(*uname())
        },
    )

    return render(request, 'about.xhtml', {
        'page_title': 'O aplikaci',
        'apps': getappinfo(),
        'env': env
    })
Example #9
0
def get_version():
    from pootle import __version__
    from translate import __version__ as tt_version
    from django import get_version as django_version

    return ("Pootle %s (Django %s, Translate Toolkit %s)" %
            (__version__, django_version(), tt_version.sver))
Example #10
0
def get_version():
    from pootle import __version__
    from translate import __version__ as tt_version
    from django import get_version as django_version

    return ("Pootle %s (Django %s, Translate Toolkit %s)" %
            (__version__, django_version(), tt_version.sver))
Example #11
0
def whoami(request, format='json'):
    if ServicesMetadata.objects.count() == 1:
        services_metadata = ServicesMetadata.objects.all()[0]
        _md = model_to_dict(services_metadata)
        domain = Site.objects.get_current().domain
        _md['uri'] = 'http://%s' % domain
        _md['sk_domain_name'] = domain
        # TODO sistemare
        _md['endpoint_SOS_url'] = settings.SITEURL + 'observations/sos'
    else:
        _md = {'message': 'Missing metadata'}

    # software
    _md['software'] = {
        'ubuntu': get_ubuntu_release(),
        'java': get_java_version(),
        'tomcat': get_tomcat_version(),
        'postgresql': get_postgres_version(),
        'postgis': get_postgis_version(),
        'python': sys.version,
        'getit': geosk_version(),
        'geonode': geonode_version(),
        'pycsw': pycsw.__version__,
        'django': django_version(),
        'sos': get_sos_version()
    }

    return HttpResponse(json.dumps(_md, indent=2), mimetype="application/json")
Example #12
0
def whoami(request, format='json'):
    if ServicesMetadata.objects.count() == 1:
        services_metadata = ServicesMetadata.objects.all()[0]
        _md = model_to_dict(services_metadata)
        domain = Site.objects.all()[0].domain
        upurl = urlparse(os.environ['SITEURL'])
        net_scheme = upurl.scheme
        _md['uri'] = '%s://%s' % (net_scheme, domain)
        _md['sk_domain_name'] = domain
        # TODO sistemare
        _md['endpoint_SOS_url'] = settings.SITEURL + 'observations/sos'
    else:
        _md = {'message': 'Missing metadata'}

    # software
    _md['software'] = {
        'ubuntu': get_ubuntu_release(),
        'java': get_java_version(),
        'tomcat': get_tomcat_version(),
        'postgresql': get_postgres_version(),
        'postgis': get_postgis_version(),
        'python': sys.version,
        'getit': geosk_version(),
        'geonode': geonode_version(),
        'pycsw': pycsw.__version__,
        'django': django_version(),
        'sos': get_sos_version()
    }

    return JsonResponse(_md)
def is_django_15plus():
    """
    allows us to apply functionality only in recent versions of Django.

    .. testcase:: VersionsTestCase
    """
    return LooseVersion(django_version()) >= LooseVersion('1.5')
Example #14
0
    def test_js_packages_with_pipeline_disabled(self):
        """Testing PipelineFormMedia.js_packages with PIPELINE_ENABLED=False"""
        class MyMedia(PipelineFormMedia):
            js_packages = ('scripts1', 'scripts2')
            js = ('extra1.js', 'extra2.js')

        media = Media(MyMedia)
        script_tag = '<script type="text/javascript" src="%s"></script>' if django_version(
        ) < '3.1' else '<script src="%s"></script>'

        self.assertEqual(MyMedia.js, [
            'extra1.js',
            'extra2.js',
            'pipeline/js/first.js',
            'pipeline/js/second.js',
            'pipeline/js/application.js',
        ])
        self.assertEqual(MyMedia.js, media._js)
        self.assertEqual(media.render_js(), [
            script_tag % path for path in (
                '/static/extra1.js',
                '/static/extra2.js',
                '/static/pipeline/js/first.js',
                '/static/pipeline/js/second.js',
                '/static/pipeline/js/application.js',
            )
        ])
Example #15
0
def errapp(env, start_response):
    from datetime import datetime
    from django import get_version as django_version
    global some_error
    data = "<ul><li>{2}<li>Python: '{0}'<li>Django: '{3}'" \
           "<li>some error happened: '{1}'</ul>"\
        .format(sys.version, some_error, datetime.now(), django_version())
    start_response("200 OK", [("Content-Type", "text/html")])
    return [data]
Example #16
0
def site(request):
    """
    Adds site-related context variables to the context.
    """
    return {
        'DJANGO_VERSION': django_version(),
        'DDTCMS_VERSION': '0.6',
        'SITE_NAME':    'DDTCMS.com',
        'DEBUG':    settings.DEBUG,
        'system_version': '0.1',
    }
Example #17
0
def get_version():
    from xtle import __version__
    from xtle.core.utils.version import get_git_hash
    from translate import __version__ as tt_version
    from django import get_version as django_version

    githash = get_git_hash()
    if githash:
        githash = "[%s] " % githash

    return ("Xtle %s %s(Django %s, Translate Toolkit %s)" %
            (__version__, githash or '', django_version(), tt_version.sver))
Example #18
0
def get_version():
    from pootle import __version__
    from pootle.core.utils.version import get_git_hash
    from translate import __version__ as tt_version
    from django import get_version as django_version

    githash = get_git_hash()
    if githash:
        githash = "[%s] " % githash

    return ("Pootle %s %s(Django %s, Translate Toolkit %s)" %
            (__version__, githash or '', django_version(), tt_version.sver))
Example #19
0
def format_error(error):
    return u"Piston/%s (Django %s) crash report:\n\n%s" % \
        (get_version(), django_version(), error)
    json_response = dict({
        "error": True,
        "errorCode": 500,
        "message": "Readability encountered a server error. We should have been made aware of this issue automatically. If this continues, please contact us at [email protected] and let us know under what conditions you're receiving this error."
    })

    if settings.DEBUG:
        json_response['message'] += ' (%s)' % error
    
    return json.dumps(json_response)
Example #20
0
class ADataFile(models.Model):
    class Meta:
        abstract = True

    upload_to_data = job_data

    job = None  # Just a placeholder for IDEs
    data = None  # Just a placeholder for IDEs

    if StrictVersion(django_version()) < StrictVersion('1.10.0'):
        # SEE: https://docs.djangoproject.com/en/1.10/topics/db/models/#field-name-hiding-is-not-permitted
        job = None  # Just a placeholder, Django < 1.10 does not support overriding Fields of abstract models
        data = None  # Just a placeholder, Django  < 1.10 does not support overriding Fields of abstract models
    else:
        job = models.ForeignKey(
            AJob, on_delete=models.CASCADE
        )  # placeholder, must be overridden by concrete class
        data = models.FileField(upload_to=upload_to_data, max_length=256)
Example #21
0
def site(request):
    """
    Adds site-related context variables to the context.
    """
    current_site = Site.objects.get_current()
    current_theme = get_current_theme()

    current_themename = "default"
    if current_theme:
        current_themename = current_theme.name

    return {
        'DJANGO_VERSION': django_version(),
        'DDTCMS_VERSION': get_version(),
        'SITE_NAME': current_site.name,
        'SITE_DOMAIN': current_site.domain,
        'SITE_URL': "http://www.%s" % (current_site.domain),
        'SITE_TIME': datetime.datetime.now(),
        'THEME_NAME': current_themename,
        'DEBUG': settings.DEBUG,
    }
Example #22
0
def site(request):
    """
    Adds site-related context variables to the context.
    """
    current_site = Site.objects.get_current()
    current_theme = get_current_theme()
    
    current_themename = "default"
    if current_theme:
        current_themename= current_theme.name

    return {
        'DJANGO_VERSION': django_version(),
        'DDTCMS_VERSION': get_version(),
        'SITE_NAME':      current_site.name,
        'SITE_DOMAIN':    current_site.domain,
        'SITE_URL':       "http://www.%s" % (current_site.domain),
        'SITE_TIME':      datetime.datetime.now(),
        'THEME_NAME':     current_themename,
        'DEBUG':          settings.DEBUG,
    }
Example #23
0
    def __init__(self):
        self.methods = {'PRIVMSG':  self.msg,
                        'ACTION':   self.me,
                        'NOTICE':   self.notice,
                        'TOPIC':    self.topic,
                        'RESET':    self.reimport,
                       }
        self.chanmodes = {}
        self.whoreplies = {}
        self.hostmask = '' # until we see ourselves speak, we do not know
        self.servername = ''
        self.lineRate = 1

        self.versionName = 'Yardbird'
        self.versionNum = VERSION
        udata = uname()
        self.versionEnv = 'Twisted %s and Django %s on %s-%s' % \
                (twisted_version.short(), django_version(), udata[0],
                 udata[4])
        self.sourceURL = 'http://zork.net/~nick/yardbird/ '
        self.realname = 'Charlie Parker Jr.'
        self.fingerReply = str(settings.INSTALLED_APPS)
Example #24
0
 def get_context_data(self, **kwargs):
     """Show system information"""
     context = super().get_context_data(**kwargs)
     request = self.request
     info_data = {
         _('Version'): {
             _('Python Version'): sys.version_info.__repr__(),
             _('Django Version'): django_version(),
             _('Supervisr Commit'): django_settings.VERSION,
         },
         _('System'): {
             _('uname'): platform.uname().__repr__(),
         },
         _('Request'): {
             _('url_name'): (request.resolver_match.url_name
                             if request.resolver_match is not None else ''),
             _('REMOTE_ADDR'):
             request.META.get('REMOTE_ADDR'),
             _('REMOTE_ADDR PTR'):
             get_reverse_dns(request.META.get('REMOTE_ADDR')),
             _('X-Forwarded-for'):
             request.META.get('HTTP_X_FORWARDED_FOR'),
             _('X-Forwarded-for PTR'):
             get_reverse_dns(request.META.get('HTTP_X_FORWARDED_FOR')),
         },
         _('Settings'): {
             _('Debug Enabled'):
             django_settings.DEBUG,
             _('Authentication Backends'):
             django_settings.AUTHENTICATION_BACKENDS,
         }
     }
     results = get_module_info.send(sender=None)
     for handler, mod_info in results:
         # Get the handler's root module
         info_data[handler.__module__] = mod_info
     context['info'] = info_data
     return context
Example #25
0
def handle_batched_events_request(request):
    """
    Handles batched events POST requests.

    Example batched events ::

        {"email":"*****@*****.**","timestamp":1322000095,
         "unique_arg":"my unique arg","event":"delivered"}
        {"email":"*****@*****.**","timestamp":1322000096,
         "unique_arg":"my unique arg","event":"open"}

    """
    from distutils.version import LooseVersion as V
    current_django_version = V(django_version())
    if current_django_version >= V('1.4'):
        events = json.loads(request.body.decode())
    else:
        events = json.loads(request.raw_post_data)

    for event in events:
        handle_single_event_request(event)
    response = HttpResponse()
    return response
Example #26
0
def handle_batched_events_request(request):
    """
    Handles batched events POST requests.

    Example batched events ::

        {"email":"*****@*****.**","timestamp":1322000095,
         "unique_arg":"my unique arg","event":"delivered"}
        {"email":"*****@*****.**","timestamp":1322000096,
         "unique_arg":"my unique arg","event":"open"}

    """
    from distutils.version import LooseVersion as V
    current_django_version = V(django_version())
    if current_django_version >= V('1.4'):
        events = json.loads(request.body.decode())
    else:
        events = json.loads(request.raw_post_data)

    for event in events:
        handle_single_event_request(event)
    response = HttpResponse()
    return response
Example #27
0
def home(request):
    """Top level url. Displays standard mds response containing following
       information about the system :
        
        Django version
        Host OS
        MDS version
        
        Note: If Http "Accept" header is included and set to 
        "application/json", the returned message will be a standard MDS
        response as follows:
        
        {
            'status':'SUCCESS',
            'code':200,
            'message': { 
                'django': django_version(),
                'platform': u' '.join(platform.uname()[0:3]),
                'version': version(),
            }
        }
    """
    data = {
        'status': 'SUCCESS',
        'code': 200,
        'message': {
            'django': django_version(),
            'platform': u' '.join(platform.uname()[0:4]),
            'version': version(),
        },
    }
    accept = request.META.get('HTTP_ACCEPT', None)
    if 'application/json' in request.META.get('HTTP_ACCEPT'):
        return HttpResponse(cjson.encode(data))
    else:
        return render_to_response('index.html', RequestContext(request, data))
Example #28
0
def home(request):
    """Top level url. Displays standard mds response containing following
       information about the system :
        
        Django version
        Host OS
        MDS version
        
        Note: If Http "Accept" header is included and set to 
        "application/json", the returned message will be a standard MDS
        response as follows:
        
        {
            'status':'SUCCESS',
            'code':200,
            'message': { 
                'django': django_version(),
                'platform': u' '.join(platform.uname()[0:3]),
                'version': version(),
            }
        }
    """
    data = {
        'status':'SUCCESS',
        'code':200,
        'message': { 
            'django': django_version(),
            'platform': u' '.join(platform.uname()[0:4]),
            'version': version(),
        },
    }
    accept = request.META.get('HTTP_ACCEPT',None)
    if 'application/json' in request.META.get('HTTP_ACCEPT'):
        return HttpResponse(cjson.encode(data))
    else:
        return render_to_response('index.html', RequestContext(request,data))
Example #29
0
def format_error(error):
    return u"Postal (Django %s) crash report:\n\n%s" % \
        (django_version(), error)
Example #30
0
def format_error(error):
    return u"Piston/{0!s} (Django {1!s}) crash report:\n\n{2!s}".format(get_version(), django_version(), error)
Example #31
0
 def setUp(self):
     if django_version() < '1.5':
         self.skipTest('This test requires Django 1.5 or higher')
     else:
         super(CustomUserTestCase, self).setUp()
         ApiKey.objects.all().delete()
Example #32
0
def format_error(error):
    return u"Piston/%s (Django %s) crash report:\n\n%s" % (get_version(), django_version(), error)
Example #33
0
#

from __future__ import unicode_literals, division
from datetime import datetime

from django import get_version as django_version
from django.conf import settings
from django.utils.timezone import get_default_timezone

from quickapi import get_version as quickapi_version

from reportapi import get_version as reportapi_version

DEBUG = settings.DEBUG

DJANGO_VERSION    = django_version()
REPORTAPI_VERSION = reportapi_version()
QUICKAPI_VERSION  = quickapi_version()

PROJECT_NAME = getattr(settings, 'PROJECT_NAME', None)
PROJECT_URL  = getattr(settings, 'PROJECT_URL', None)

REPORTAPI_DEBUG           = getattr(settings, 'REPORTAPI_DEBUG', settings.DEBUG)
REPORTAPI_LOGGING         = getattr(settings, 'REPORTAPI_LOGGING', not settings.DEBUG)
REPORTAPI_ROOT            = getattr(settings, 'REPORTAPI_ROOT', '%sreports/' % settings.MEDIA_ROOT)
REPORTAPI_URL             = getattr(settings, 'REPORTAPI_URL',  '%sreports/' % settings.MEDIA_URL)
REPORTAPI_ENABLE_THREADS  = getattr(settings, 'REPORTAPI_ENABLE_THREADS', False)
REPORTAPI_FILES_UNIDECODE = getattr(settings, 'REPORTAPI_FILES_UNIDECODE', False)
REPORTAPI_LANGUAGES       = getattr(settings, 'REPORTAPI_LANGUAGES', ['en', 'ru'])
REPORTAPI_UPLOADCODE_LENGTH = getattr(settings, 'REPORTAPI_UPLOADCODE_LENGTH', 12)
def powered_by_processor(request):
    return {
        "website_version_": website_version(),
        "python_version_": python_version(),
        "django_version_": django_version(),
    }
Example #35
0
 def setUp(self):
     if django_version() < "1.5":
         self.skipTest("This test requires Django 1.5 or higher")
     else:
         super(CustomUserTestCase, self).setUp()
         ApiKey.objects.all().delete()
def format_error(error):
    return "Django Declarative APIs (Django %s) crash report:\n\n%s" % (
        django_version(),
        error,
    )
Example #37
0
def platform_version_info(request):
    return {'version_springwhiz': SPRINGWHIZ_VERSION,
            'version_python': python_version.split()[0],
            'version_django': django_version()}
Example #38
0
    def __call__(self, request, *args, **kwargs):
        """
        NB: Sends a `Vary` header so we don't cache requests
        that are different (OAuth stuff in `Authorization` header.)
        
        This function works as follows:
            1 put post data in an easy to reach place
            2 work out which view we want to call and call it
                2a if there is an expected api usage exception, it handles catching it and retuning the appropriate details
                2b if there is an unexpected failure in the view, it will catch that and log it
            3 construct the response, using the appropriate amount of detail
            4 render the response to json
        """
        logging.info("     >>>> framework resource (enter)")
        # try to keep as much in the try block as possible, as we want pretty error messages at the least
        try:
            # try to find the user_id
            try:
                request.user_id = self.auth(request)
            except AttributeError:
                pass
        
            rm = request.method.upper()

            handler = self.handler
            handler.status = None # reset status
            # Translate nested datastructs into `request.data` here.
            if rm in ('POST', 'PUT'):
                mimer = Mimer()
                mimer.translate(request)
            
            method_string = self.callmap.get(rm, None)
            if method_string is None:
                raise NotImplemented(rm)
            meth = getattr(handler, method_string, False)
            
            # tries to call the view
            logging.info("%s: %s" % (handler.__class__.__name__, self.callmap.get(rm)))
            result = meth(request, *args, **kwargs)
            
            # construct the response using the appropriate detail then render to json
            output_format = request.REQUEST.get('output','default')
            try:
                output_emitter = self.output[output_format]
            except:
                raise InvalidParameter("emission type", value=outputformat, fix="choose from [%s]" % "/".join(self.output.keys))
            
            emitter = output_emitter(request=request)# give request so we can lazily load the user only if necessary
            mimetype = emitter.mimetype


            construct = emitter._construct(data=result)
            stream = emitter.render({'data':construct})
            
            if handler.status is None:
                status = 200
            else:
                status = handler.status
        except (APIException) as e:
            stream = json.dumps(e.returnerror, indent=4)
            status = e.status
            mimetype = "application/json"
        except Exception as e: #keep this stuff simple so we KNOW it works
            logging.exception("Exception in API %s" % str(e))
            status = 500
            if settings.DEBUG:
                stream = json.dumps({'error':{
                                    'type':"APIError",
                                    'message':("API (Django %s) crash report:\n\n%s" % 
                        (django_version(), str(traceback.format_exc())))}}, indent=4)
                mimetype = "application/json"
            else:
                stream = json.dumps({'error':{
                                    'type':"APIError",
                                    'message':"An API error has occured, please try again later."}}, indent=4)
                mimetype = "application/json"
        
        #logging.info(stream)
        resp = HttpResponse(stream, mimetype=mimetype, status=status)
        logging.info(" <<<< framework resource (exit)")
        return resp 
Example #39
0
import platform
import os
import tarfile

from django.test import TestCase
from django.core.files import File
from django.http import HttpResponse
from django.test.client import RequestFactory
from django.core.files.base import ContentFile
from django import get_version as django_version

from tarview.views import BaseTarView

delete_zip = True  # if you want to check them manually
name = "/tmp/test_py-%s_dj-%s.tar" % (platform.python_version(),
                                      django_version())


class TarView(BaseTarView):
    """Test TarView basic implementation."""
    _files = None

    def get_files(self):
        if self._files is None:
            dirname = os.path.dirname(__file__)
            self._files = [
                File(open(os.path.join(dirname, 'test_file.txt')),
                     name="test_file.txt"),
                File(open(os.path.join(dirname, 'test_file.odt')),
                     name="test_file.odt"),
                ContentFile(b"Littlepip is best pony!",
Example #40
0
import gzip

from io import BytesIO

from django import get_version as django_version

_CACHED_STATIC_FILES_STORAGE_AVAILABLE = django_version() < '3.1'

if _CACHED_STATIC_FILES_STORAGE_AVAILABLE:
    from django.contrib.staticfiles.storage import CachedStaticFilesStorage
from django.contrib.staticfiles.storage import ManifestStaticFilesStorage, StaticFilesStorage
from django.contrib.staticfiles.utils import matches_patterns

from django.core.files.base import File


class PipelineMixin(object):
    packing = True

    def post_process(self, paths, dry_run=False, **options):
        if dry_run:
            return

        from pipeline.packager import Packager
        packager = Packager(storage=self)
        for package_name in packager.packages['css']:
            package = packager.package_for('css', package_name)
            output_file = package.output_filename
            if self.packing:
                packager.pack_stylesheets(package)
            paths[output_file] = (self, output_file)
Example #41
0
from .. import conf
from .. import __version__ as library_version

if not hasattr(settings, 'UPLOADCARE'):
    raise ImproperlyConfigured('UPLOADCARE setting must be set')

if 'pub_key' not in settings.UPLOADCARE:
    raise ImproperlyConfigured('UPLOADCARE setting must have pub_key')
if 'secret' not in settings.UPLOADCARE:
    raise ImproperlyConfigured('UPLOADCARE setting must have secret')

conf.pub_key = settings.UPLOADCARE['pub_key']
conf.secret = settings.UPLOADCARE['secret']
conf.user_agent_extension = 'Django/{0}; PyUploadcare-Django/{1}'.format(
    django_version(), library_version)

if 'cdn_base' in settings.UPLOADCARE:
    conf.cdn_base = settings.UPLOADCARE['cdn_base']

widget_version = settings.UPLOADCARE.get('widget_version', '3.x')
widget_build = settings.UPLOADCARE.get(
    'widget_build', settings.UPLOADCARE.get('widget_variant', 'full.min'))

widget_filename = 'uploadcare.{0}.js'.format(widget_build).replace('..', '.')

hosted_url = ('https://ucarecdn.com/libs/widget/{version}/{filename}'.format(
    version=widget_version, filename=widget_filename))

local_url = 'uploadcare/{filename}'.format(filename=widget_filename)
Example #42
0
def is_pre_django2():
    """
    Quick check if the used django version is pre 2.0
    """
    return tuple(int(n) for n in django_version().split('.')) <= (2, 0, 0)
Example #43
0
class BaseSettings():

    PROJECT_VERSION = __version__
    DJANGO_VERSION = django_version()  # created at 3.1.3
    PROJECT_NAME = 'qzandronum'

    PROJECT_DIR = Path(__file__).resolve().parent

    # Build paths inside the project like this: BASE_DIR / 'subdir'.
    @property
    def BASE_DIR(self):
        return self.PROJECT_DIR.parent

    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

    # SECURITY WARNING: keep the secret key used in production secret!
    @cbs.env
    def SECRET_KEY(self):
        '''Gets its value from os.environ['DJANGO_SECRET_KEY']'''
        print('!!! ENV KEY failed, will use dummy')
        return 'chzoay@llvwf-)u84#h5e(y7(=tr)oko9_+^-q8wch&02_$fw)'

    # SECURITY WARNING: don't run with debug turned on in production!
    @cbs.env(key='DEBUG')
    def DEBUG(self):
        return True

    ALLOWED_HOSTS = ['*']

    # Application definition

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        # 'django.contrib.sites',  # needed for sitemap framework
        'debug_toolbar',
        'sniplates',
        'celestia',
        'core',
        'builds',
        'chunked_upload',
        'django.contrib.staticfiles',
    ]

    SITE_ID = 1  # needed for sites framework

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'debug_toolbar.middleware.DebugToolbarMiddleware',
        'django.middleware.locale.LocaleMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]

    ROOT_URLCONF = 'qzandronum.urls'

    SETTING_CONTEXT_NAMES = (
        'PROJECT_VERSION',
        'DJANGO_VERSION',
        # 'COMMON_SCRIPTS',
        # 'COMMON_STYLES',
    )

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                    'celestia.context_processors.setting',
                ],
            },
        },
    ]

    WSGI_APPLICATION = 'qzandronum.wsgi.application'

    STYLES_APP = 'core'
    CELESTIA_STATIC_APPS = ('core', )

    MAIN_STYLE_FILENAME = 'main'

    CELESTIA_ALLOWED_NESTED_EXTS = ("tar", )
    # Database
    # https://docs.djangoproject.com/en/3.1/ref/settings/#databases

    @property
    def DATABASES(self):
        return {
            'default': {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': self.BASE_DIR / 'qzandronum.sqlite3',
            }
        }

    # Auth
    AUTH_USER_MODEL = 'core.CoreUser'
    LOGIN_URL = '/auth/login/'
    LOGIN_REDIRECT_URL = '/'

    # Password validation
    # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators

    AUTH_PASSWORD_VALIDATORS = [
        {
            'NAME':
            'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        },
        {
            'NAME':
            'django.contrib.auth.password_validation.MinimumLengthValidator',
        },
        {
            'NAME':
            'django.contrib.auth.password_validation.CommonPasswordValidator',
        },
        {
            'NAME':
            'django.contrib.auth.password_validation.NumericPasswordValidator',
        },
    ]

    # Internationalization
    # https://docs.djangoproject.com/en/3.1/topics/i18n/

    LANGUAGE_CODE = 'en'

    TIME_ZONE = 'Europe/Moscow'  # 'UTC'
    USE_I18N = True
    USE_L10N = True
    USE_TZ = True

    LANGUAGES = [
        ('en', _('English')),
        ('ru', _('Russian')),
    ]

    LOCALE_PATHS = [PROJECT_DIR / 'locale']

    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/3.1/howto/static-files/

    # WARNING! Cast to Path!
    @cbs.env(cast=Path)
    def WEB_ROOT(self):
        """ This is not standart setting, there are different approaches to put your
            media and static files, some are confusing, I prefer to put it outside of
            project dir, e.g. /srv/www/
        """
        return self.BASE_DIR / 'webfiles'

    @property
    def STATIC_ROOT(self):
        return self.WEB_ROOT / 'static'

    @property
    def MEDIA_ROOT(self):
        return self.WEB_ROOT / 'media'

    STATIC_URL = '/static/'
    MEDIA_URL = '/files/'

    CHUNKED_UPLOAD_PATH = 'builds_chunks/%Y-%m/'
    CHUNKED_UPLOAD_MAX_BYTES = 2147483648  # 2GB

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'console': {
                'class': 'logging.StreamHandler',
            },
        },
        'django': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'DEBUG',
        },
    }
Example #44
0
def format_error(error):
    return u"Piston/%s (Django %s) crash report:\n\n%s" % \
        (get_version(), django_version(), error)
Example #45
0
import platform
import os
import tarfile

from django.test import TestCase
from django.core.files import File
from django.http import HttpResponse
from django.test.client import RequestFactory
from django.core.files.base import ContentFile
from django import get_version as django_version

from tarview.views import BaseTarView

delete_zip = True  # if you want to check them manually
name = "/tmp/test_py-%s_dj-%s.tar" % (platform.python_version(),django_version())


class TarView(BaseTarView):
    """Test TarView basic implementation."""
    _files = None

    def get_files(self):
        if self._files is None:
            dirname = os.path.dirname(__file__)
            self._files = [
                File(open(os.path.join(dirname, 'test_file.txt')), name="test_file.txt"),
                File(open(os.path.join(dirname, 'test_file.odt')), name="test_file.odt"),
                ContentFile(b"Littlepip is best pony!", name="test_file_manual.txt")
            ]
        return self._files
Example #46
0
from distutils.version import StrictVersion

from django import get_version as django_version

DEBUG = True

INSTALLED_APPS = (
    # defaults from django 1.8
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # end
    'django-dia',
    'test_project.anyapp',
)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'testdb',
    }
}

SECRET_KEY = 'mblqnc+y=9^c$44!!r9b!fw$a95@p_m31o7r3+9w4h&@tu)wps'

if StrictVersion(django_version()) < StrictVersion('1.9'):
    MIDDLEWARE_CLASSES = ()
Example #47
0
from .. import __version__ as library_version


if not hasattr(settings, 'UPLOADCARE'):
    raise ImproperlyConfigured('UPLOADCARE setting must be set')

if 'pub_key' not in settings.UPLOADCARE:
    raise ImproperlyConfigured('UPLOADCARE setting must have pub_key')
if 'secret' not in settings.UPLOADCARE:
    raise ImproperlyConfigured('UPLOADCARE setting must have secret')


conf.pub_key = settings.UPLOADCARE['pub_key']
conf.secret = settings.UPLOADCARE['secret']
conf.user_agent_extension = 'Django/{0}; PyUploadcare-Django/{1}'.format(
    django_version(), library_version)

if 'cdn_base' in settings.UPLOADCARE:
    conf.cdn_base = settings.UPLOADCARE['cdn_base']


widget_version = settings.UPLOADCARE.get('widget_version', '3.x')
widget_build = settings.UPLOADCARE.get(
    'widget_build',
    settings.UPLOADCARE.get('widget_variant', 'full.min'))

widget_filename = 'uploadcare.{0}.js'.format(widget_build).replace('..', '.')

hosted_url = (
    'https://ucarecdn.com/libs/widget/{version}/{filename}'
    .format(version=widget_version, filename=widget_filename))
Example #48
0
from django import get_version as django_version


DEBUG = True

INSTALLED_APPS = (
    # defaults from django 1.8
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # end
    'django-dia',
    'test_project.anyapp',
)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'testdb',
    }
}

SECRET_KEY = 'mblqnc+y=9^c$44!!r9b!fw$a95@p_m31o7r3+9w4h&@tu)wps'


if StrictVersion(django_version()) < StrictVersion('1.9'):
    MIDDLEWARE_CLASSES = ()
Example #49
0
def check_prerequisites():
    print 'Checking prerequisites...'

    
    print '    - Checking Python version (>= 2.3.0):',

    print '%i.%i.%i' % sys.version_info[0:3],
    
    if sys.version_info >= (2, 3, 0):
        print '-> OK' 
    else:
        print '-> FAILED'
        return False
    

    print '    - Checking Django version (>= 1.0.2):',

    try:
        from django import get_version as django_version
        print django_version(),
    
        if tuple(django_version().split('.')) >= (1, 0, 2):
            print '-> OK' 
        else:
            print '-> FAILED'
            return False
    except:
        print 'Not installed'
        print 
        print 'Go to http://www.djangoproject.com to download and install Django'
        return False


    print '    - Checking MySQLdb version (>= 1.2.2):',

    try:
        from MySQLdb import version_info as mysqldb_version

        print '%i.%i.%i' % mysqldb_version[0:3],
    
        if mysqldb_version >= (1, 2, 2):
            print '-> OK' 
        else:
            print '-> FAILED'
            return False
    except:
        print 'Not installed'
        print 
        print 'Go to http://sourceforge.net/projects/mysql-python to download and install MySQLdb'
        return False


    print '    - Checking git-python version (>= 0.1.6):',

    try:
        import git
        print git.__version__,
    
        if tuple(git.__version__.split('.')) >= ('0', '1', '6'):
            print '-> OK' 
        else:
            print '-> FAILED'
            return False
    except:
        print 'Not installed'
        print 
        print 'Go to http://gitorious.org/git-python to download and install git-python'
        return False


    print '    - Checking Pygments version (>= 1.1):',

    try:
        import pygments
        print pygments.__version__,
    
        if tuple(pygments.__version__.split('.')) >= ('1', '1'):
            print '-> OK' 
        else:
            print '-> FAILED'
            print 
            print 'Go to http://pygments.org to download a newer Pygments version (you might need to download the development version using Mercurial)'
            return False
    except:
        print 'Not installed'
        print 
        print 'Go to http://pygments.org to download Pygments (you might need to download the development version using Mercurial)'
        return False


    print '    - Checking PHP version (>= 4.3.3):',

    p = subprocess.Popen("php --version", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    if p.wait() != 0:
        print 'Not installed'
        return False

    m = re.search('^PHP (?P<version>\d\.\d\.\d) ?', p.stdout.readlines()[0])

    print m.group('version'),
    
    if tuple(m.group('version').split('.')) >= ('4', '3', '3'):
        print '-> OK' 
    else:
        print '-> FAILED'
        return False


    print '    - Checking MySQL version (>= 4.1):',

    p = subprocess.Popen("mysql --version", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    if p.wait() != 0:
        print 'Not installed'
        return False

    m = re.search('Distrib (?P<version>\d\.\d\.\d) ?', p.stdout.readlines()[0])

    print m.group('version'),
    
    if tuple(m.group('version').split('.')) >= ('4', '1'):
        print '-> OK' 
    else:
        print '-> FAILED'
        return False


    print '    - Checking Git version (>= 1.5.0):',

    p = subprocess.Popen("git --version", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    if p.wait() != 0:
        print 'Not installed'
        return False

    m = re.search('git version (?P<version>\d\.\d\.\d) ?', p.stdout.readlines()[0])

    print m.group('version'),
    
    if tuple(m.group('version').split('.')) >= ('1', '5', '0'):
        print '-> OK' 
    else:
        print '-> FAILED'
        return False

    print
    print """Optional requirements:

    If you want to enable the embedded math formulas on the wiki, the following
    is needed (from the README):

        OCaml 3.06 or later is required to compile texvc; this can be acquired from
        http://caml.inria.fr/ if your system doesn't have it available.

        The makefile requires GNU make.

        Rasterization is done via LaTeX, dvipng. These need to be installed and in
        the PATH: latex, dvipng

        AMS* packages for LaTeX also need to be installed. Without AMS* some equations
        will render correctly while others won't render. Most distributions of TeX
        already contain AMS*. In Debian/Ubuntu you need to install tetex-extra.

        To work properly with rendering non-ASCII Unicode characters, a supplemental TeX
        package is needed (cjk-latex in Debian)
"""

    return True
Example #50
0
# Project project Django settings.
import os
import sys
import pandas

from django import get_version as django_version
from distutils.version import StrictVersion
DJANGO_19 = StrictVersion(django_version()) >= StrictVersion('1.9')
DJANGO_18 = not DJANGO_19


# CELERY SETUP
import djcelery
djcelery.setup_loader()
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
BROKER_URL = 'redis://localhost:6379'
#CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['json', 'pickle']
CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'json'

# stop those annoying warnings
pandas.options.mode.chained_assignment = None

# PATH SETUP
PROJECT_NAME = 'savor'
PROJECT_DIR = os.path.realpath(os.path.dirname(__file__))
sys.path.append(PROJECT_DIR)
ENVIRON_DIR = os.path.realpath(os.path.join(PROJECT_DIR, '..'))
CLIENT_PROJECT = os.path.split(ENVIRON_DIR)[1]
Example #51
0
def format_error(error):
    return u"Postal (Django %s) crash report:\n\n%s" % \
        (django_version(), error)