コード例 #1
0
def init_django():
    """
    Bootstrap Django and initialise this module
    """
    global django, create_test_db, destroy_test_db, setup_test_environment
    global teardown_test_environment, adapter

    if not django:
        return

    sys.path.insert(0, os.path.dirname(__file__))
    os.environ['DJANGO_SETTINGS_MODULE'] = (
        'django_app.settings'
    )

    from django.conf import settings

    from django_app import settings as app_settings

    app_settings.INSTALLED_APPS = tuple(
        list(app_settings.INSTALLED_APPS) + [__name__]
    )

    try:
        settings.configure(**app_settings.__dict__)
    except RuntimeError:
        for attr in dir(app_settings):
            if not attr.isupper():
                continue

            setattr(settings, attr, getattr(app_settings, attr))

    try:
        django.setup()
    except AttributeError:
        pass

    from django.test.utils import setup_test_environment  # noqa
    from django.test.utils import teardown_test_environment  # noqa

    adapter = pyamf.get_adapter('django.db.models.base')

    try:
        from django.test.utils import create_test_db, destroy_test_db
    except ImportError:
        from django.db import connection

        create_test_db = connection.creation.create_test_db
        destroy_test_db = connection.creation.destroy_test_db

        del connection

    return True
コード例 #2
0
"""
Tests for PyAMF integration with L{google.appengine.api.datastore_types}
"""

import pyamf
from pyamf.adapters.tests import google


if google.has_appengine_sdk():
    from google.appengine.api import datastore_types

    adapter = pyamf.get_adapter('google.appengine.api.datastore_types')


class GeoPtTestCase(google.BaseTestCase):
    """
    Tests for PyAMF integration with L{datastore_types.GeoPt}
    """

    def test_encode(self):
        point = datastore_types.GeoPt(lat=1.23456, lon=-23.9876)

        self.assertEncodes(point, (
            b'\x10\x00*google.appengine.api.datastore_types.GeoPt', (
                b'\x00\x03lat\x00?\xf3\xc0\xc1\xfc\x8f28',
                b'\x00\x03lon\x00\xc07\xfc\xd3Z\x85\x87\x94',
            ),
            b'\x00\x00\t'
        ), encoding=pyamf.AMF0)

        self.assertEncodes(point, (
コード例 #3
0
ファイル: test_xdb.py プロジェクト: nervatura/nerva2py
import pyamf
from pyamf import amf3

from pyamf.tests import util
from pyamf.adapters.tests import google

Spam = util.Spam


if google.has_appengine_sdk():
    from google.appengine.ext import db
    from google.appengine.ext.db import polymodel

    from . import _xdb_models as models

    adapter = pyamf.get_adapter('google.appengine.ext.db')


class BaseTestCase(google.BaseTestCase):
    def decode(self, bytes, encoding=pyamf.AMF3):
        decoded = list(pyamf.decode(bytes, encoding=encoding))

        if len(decoded) == 1:
            return decoded[0]

        return decoded

    def encodeKey(self, key, encoding):
        """
        Returns an AMF encoded representation of a L{db.Key} instance.
コード例 #4
0
"""
Tests for PyAMF integration with L{google.appengine.api.datastore_types}
"""

import pyamf
from pyamf.adapters.tests import google

if google.has_appengine_sdk():
    from google.appengine.api import datastore_types

    adapter = pyamf.get_adapter('google.appengine.api.datastore_types')


class GeoPtTestCase(google.BaseTestCase):
    """
    Tests for PyAMF integration with L{datastore_types.GeoPt}
    """
    def test_encode(self):
        point = datastore_types.GeoPt(lat=1.23456, lon=-23.9876)

        self.assertEncodes(
            point, (b'\x10\x00*google.appengine.api.datastore_types.GeoPt', (
                b'\x00\x03lat\x00?\xf3\xc0\xc1\xfc\x8f28',
                b'\x00\x03lon\x00\xc07\xfc\xd3Z\x85\x87\x94',
            ), b'\x00\x00\t'),
            encoding=pyamf.AMF0)

        self.assertEncodes(point,
                           (b'\n#Ugoogle.appengine.api.datastore_types.GeoPt'
                            b'\x07lat\x07lon'
                            b'\x05?\xf3\xc0\xc1\xfc\x8f28\x05'
コード例 #5
0
# Copyright (c) The PyAMF Project.
# See LICENSE.txt for details.
"""
PyAMF tests for google.appengine.ext.blobstore.
"""

import datetime

import pyamf

from pyamf.adapters.tests import google

if google.has_appengine_sdk():
    from google.appengine.ext import blobstore

    adapter = pyamf.get_adapter('google.appengine.ext.blobstore')


class BlobStoreTestCase(google.BaseTestCase):
    """
    Tests for L{blobstore}
    """

    bytes = ('\n\x0bOgoogle.appengine.ext.blobstore.BlobInfo',
             ('\tsize\x04\xcb\xad\x07',
              '\x11creation\x08\x01Br\x9c\x1d\xbeh\x80\x00',
              '\x07key\x06\rfoobar', '\x19content_type\x06\x15text/plain',
              '\x11filename\x06\x1fnot-telling.ogg'), '\x01')

    values = {
        'content_type': 'text/plain',
コード例 #6
0
ファイル: test_ndb.py プロジェクト: Lunatixz/repo-scripts
"""
Tests for PyAMF support of google.appengine.ext.ndb
"""

import datetime

import pyamf
from pyamf.adapters.tests import google


if google.has_appengine_sdk():
    from google.appengine.ext import ndb

    from . import _ndb_models as models

    adapter = pyamf.get_adapter('google.appengine.ext.ndb')


class EncodeModelTestCase(google.BaseTestCase):
    """
    Tests for encoding an L{ndb.Model} instance.
    """

    def test_simple(self):
        """
        The simplest encode possible - anonymous class, no properties
        """
        entity = models.SimpleEntity()

        self.assertEncodes(entity, (
            '\x03\x00',
コード例 #7
0
ファイル: test_blobstore.py プロジェクト: LiiiQin/test
# See LICENSE.txt for details.

"""
PyAMF tests for google.appengine.ext.blobstore.
"""

import datetime

import pyamf

from pyamf.adapters.tests import google

if google.has_appengine_sdk():
    from google.appengine.ext import blobstore

    adapter = pyamf.get_adapter('google.appengine.ext.blobstore')


class BlobStoreTestCase(google.BaseTestCase):
    """
    Tests for L{blobstore}
    """

    bytes = (
        '\n\x0bOgoogle.appengine.ext.blobstore.BlobInfo', (
            '\tsize\x04\xcb\xad\x07',
            '\x11creation\x08\x01Br\x9c\x1d\xbeh\x80\x00',
            '\x07key\x06\rfoobar',
            '\x19content_type\x06\x15text/plain',
            '\x11filename\x06\x1fnot-telling.ogg'
        ), '\x01')