def setup_method(self, method):
        self.type = CompositeType('category', [
            sa.Column('scale', NumericRangeType),
            sa.Column('name', sa.String)
        ])

        TestCase.setup_method(self, method)
class Rating(Base):
    __tablename__ = 'rating_stay_safe'

    id_rating = Column(Integer, primary_key=True)
    user = Column(String, ForeignKey(User.username))
    id_neighborhood = Column(Integer, ForeignKey(Neighborhood.id_neighborhood))
    neighborhood = relationship("Neighborhood", back_populates="rating")
    rating_neighborhood = Column(Integer, nullable=False)
    details = Column(
        CompositeType('details', [
            Column('lighting', Boolean),
            Column('movement_of_people', Boolean),
            Column('police_rounds', Boolean)
        ]))

    def to_dict(self, del_null_attr=True):
        # getting the details
        details = {}
        for field in self.details._fields:
            value = self.details.__getattribute__(field)
            if del_null_attr:
                if value is not None:
                    details.update({field: value})
            else:
                details.update({field: value})

        rating = {
            'details': details,
            'id_rating': self.id_rating,
            'user': self.user,
            'rating_neighborhood': self.rating_neighborhood,
            'neighborhood': get_row_dict(self.neighborhood)
        }

        return rating
Esempio n. 3
0
 class Account(Base):
     __tablename__ = 'account'
     id = sa.Column(sa.Integer, primary_key=True)
     balance = sa.Column(
         CompositeType('money_type', [
             sa.Column('currency', CurrencyType),
             sa.Column('amount', sa.Integer)
         ]))
    def setup_method(self, method):
        self.type = CompositeType('money_type', [
            sa.Column('currency', CurrencyType),
            sa.Column('amount', sa.Integer)
        ])

        TestCase.setup_method(self, method)
        i18n.get_locale = lambda: i18n.babel.Locale('en')
Esempio n. 5
0
    def Account(self, Base):
        pg_composite.registered_composites = {}

        type_ = CompositeType('money_type', [
            sa.Column('currency', sa.String),
            sa.Column('amount', sa.Integer)
        ])

        class Account(Base):
            __tablename__ = 'account'
            id = sa.Column(sa.Integer, primary_key=True)
            balance = sa.Column(type_)

        return Account
    def setup_method(self, method):
        self.engine = create_engine(self.dns)
        self.engine.echo = True
        self.connection = self.engine.connect()
        self.Base = declarative_base()
        pg_composite.registered_composites = {}

        self.type = CompositeType('money_type', [
            sa.Column('currency', sa.String),
            sa.Column('amount', sa.Integer)
        ])

        self.create_models()
        sa.orm.configure_mappers()

        Session = sessionmaker(bind=self.connection)
        self.session = Session()
        self.session.execute(
            "CREATE TYPE money_type AS (currency VARCHAR, amount INTEGER)")
        self.session.execute("""CREATE TABLE account (
                id SERIAL, balance MONEY_TYPE, PRIMARY KEY(id)
            )""")
        register_composites(self.connection)
Esempio n. 7
0
 def type_(self):
     return CompositeType('category', [
         sa.Column('scale', NumericRangeType),
         sa.Column('name', sa.String)
     ])
Esempio n. 8
0
 def type_(self):
     return CompositeType('money_type', [
         sa.Column('currency', CurrencyType),
         sa.Column('amount', sa.Integer)
     ])