Esempio n. 1
0
    def test_get_again(self):
        databases = dbdict()

        db1 = databases.get("minimal")

        db2 = databases.get("minimal")
        self.assertEqual(db1, db2)
 def setUp(self):
     self.db = databases.get('default')
     self.user = User.objects.filter(email='*****@*****.**').scalar()
     if self.user is None:
         self.user = User(name='Joe', email='*****@*****.**')
     self.user_country = Country.objects.filter(name='US').scalar()
     if self.user_country is None:
         self.user_country = Country(name=UtilsCountry('US'))
     self.client = Client()
     self.url = reverse('user-auth')
     self.password = '******'
     self.user.name = 'Joe'
     self.user.middle_name = 'Jr'
     self.user.birth_date = datetime.datetime(2018, 5, 19)
     self.user.last_name = 'Doe'
     self.user.set_password(self.password)
     self.token = self.user.get_jwt_token(self.user.email, self.password)
     self.user.nationality = self.user_country
import os

import six

from django.test import TestCase
from django_sorcery.db import databases
from django_sorcery.management.commands.sorcery_downgrade import Downgrade
from django_sorcery.management.commands.sorcery_revision import Command
from django_sorcery.management.commands.sorcery_upgrade import Upgrade

from .base import MIGRATION_DIR, MigrationMixin

rev = "000000000000"

db = databases.get("test")


class TestRevision(MigrationMixin, TestCase):
    def setUp(self):
        super().setUp()
        Upgrade().run_from_argv(
            ["./manage.py sorcery", "upgrade", "--no-color"])

    def tearDown(self):
        super().tearDown()
        self.delete_migration("{}_.py".format(rev))
        self.delete_migration("{}_zero.py".format(rev))
        Downgrade().run_from_argv(
            ["./manage.py sorcery", "downgrade", "--no-color"])

    def test_without_app(self):
Esempio n. 4
0
    def test_get(self):
        databases = dbdict()

        db = databases.get("minimal")
        self.assertEqual(str(db.url), "sqlite://")
Esempio n. 5
0
def get_db_dict():
    from django_sorcery.db import databases
    return {'default': databases.get('default').bind}
Esempio n. 6
0
from django_sorcery.db import databases
from sqlalchemy import ForeignKey, Sequence, UniqueConstraint, Enum
import enum

db = databases.get("default")

# =========================================================================
# article
# =========================================================================

ArticleSequence = Sequence('sq_cng_atcl', start=1000)


class SocialMedia(enum.Enum):
    TWITTER = 1
    FACEBOOK = 2
    OTHERS = 3


class Article(db.Model):
    __tablename__ = 'cng_atcl'
    __table_args__ = (UniqueConstraint('url', name='uq_cng_atcl_url'), )
    id = db.Column(db.Integer(),
                   ArticleSequence,
                   primary_key=True,
                   server_default=ArticleSequence.next_value())
    title = db.Column(db.String(length=200))
    summary = db.Column(db.String(length=200))
    url = db.Column(db.String(length=200))
    published_date = db.Column(db.DateTime())
import os
from datetime import timedelta, date
from sqlalchemy_utils import EmailType, CountryType

from django.contrib.auth.hashers import make_password, check_password
from django_sorcery.db import databases
from jose import jws

db = databases.get('default')
db.url = 'postgresql://*****:*****@{}:5432/postgres'.format(os.getenv('PSQLHOST', 'localhost'))


class Country(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(CountryType)


class User(db.Model):
    """
    User model which maps to db table User.
    """
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=256))
    middle_name = db.Column(db.String(length=256))
    last_name = db.Column(db.String(length=256))
    birth_date = db.Column(db.DateTime())
    email = db.Column(EmailType, unique=True)
    password_hash = db.Column(db.String(128))
    nationality = db.ManyToOne(Country, backref=db.backref("users", cascade="all, delete-orphan"))
    token = db.Column(db.String(512))
Esempio n. 8
0
# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals

from django_sorcery.db import databases

default_db = databases.get("default")
other_db = databases.get("fromdbs")


class Foo(default_db.Model):

    id = default_db.Column(default_db.Integer(),
                           autoincrement=True,
                           primary_key=True)
    name = default_db.Column(default_db.String(length=10), nullable=False)


class Bar(other_db.Model):

    id = other_db.Column(other_db.Integer(),
                         autoincrement=True,
                         primary_key=True)
    name = other_db.Column(other_db.String(length=10), nullable=False)


default_db.create_all()
other_db.create_all()
# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals

from django_sorcery.db import databases

db = databases.get("terrible")


class Foo(db.Model):
    __table_args__ = db.args(
        db.ForeignKeyConstraint(["id1", "parent_id2"], ["foo.id1", "foo.id2"],
                                use_alter=True))

    id1 = db.Column(db.Integer(), primary_key=True)
    id2 = db.Column(db.Integer(), primary_key=True)

    parent_id2 = db.Column(db.Integer())

    partial_parent = db.relationship(
        "Foo",
        foreign_keys=[parent_id2],
        primaryjoin=db.and_(id1 == id1,
                            db.remote(id2) == db.foreign(parent_id2)),
        uselist=False,
    )


db.create_all()
Esempio n. 10
0
from django_sorcery.db import databases

db = databases.get("minimal_backpop")


class Asset(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))

    order = db.ManyToOne("Order", back_populates="assets")


class OrderItem(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))

    orders = db.OneToMany("Order", back_populates="order_item")


class Customer(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))

    orders = db.OneToMany("Order", back_populates="applicant")
    coapp_orders = db.OneToMany("Order", back_populates="coapplicant")
    profile = db.relationship("Profile",
                              back_populates="customer",
                              uselist=False)


class Profile(db.Model):
Esempio n. 11
0
from django_sorcery.db import databases

db = databases.get("minimal")


class Asset(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))


class OrderItem(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))


class Customer(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))


class Profile(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=20))
    customer = db.OneToOne(Customer, backref="profile")


class Contact(db.Model):
    pk = db.Column(db.Integer(), autoincrement=True, primary_key=True)
    name = db.Column(db.String(length=5))