Exemple #1
0
class ModelLevel1(Model):
    __csv_file__ = "model_level1.csv"
    columns = [
        Column('id', IntegerColumnType(), key=PrimaryKey()),
        Column('value', IntegerColumnType()),
        Column('level2_id',
               IntegerColumnType(),
               key=ForeignKey('id', ModelLevel2),
               object_field='level2')
    ]
Exemple #2
0
class Product(Model):
    __csv_file__ = "products.csv"
    columns = [
        Column('product_id', IntegerColumnType(), key=PrimaryKey()),
        Column('manufacturer_id',
               StringColumnType(),
               key=ForeignKey('manufacturer_id', Manufacturer),
               object_field='manufacturer'),
        Column('description', StringColumnType()),
        Column('unit_cost', FloatColumnType()),
        Column('in_stock_count', IntegerColumnType()),
    ]
Exemple #3
0
class Order(Model):
    __csv_file__ = "orders.csv"
    columns = [
        Column('order_id', IntegerColumnType(), key=PrimaryKey()),
        Column('person_id',
               IntegerColumnType(),
               key=ForeignKey('person_id', Person),
               object_field='person'),
        Column('product_id',
               IntegerColumnType(),
               key=ForeignKey('product_id', Product),
               object_field='product'),
        Column('quantity', IntegerColumnType()),
        Column('total', IntegerColumnType())
    ]
Exemple #4
0
class Person(Model):
    __csv_file__ = "people.csv"

    columns = [
        Column('id', IntegerColumnType(), key=PrimaryKey()),
        Column('last_name', StringColumnType()),
        Column('first_name', StringColumnType()),
    ]
Exemple #5
0
class Manufacturer(Model):
    __csv_file__ = 'manufacturers.csv'
    columns = [
        Column('manufacturer_id', StringColumnType(), key=PrimaryKey()),
        Column('description', StringColumnType()),
        Column('contact_id',
               IntegerColumnType(),
               key=ForeignKey('person_id', Person),
               object_field='contact')
    ]
Exemple #6
0
class AllValueTypes(Model):
    ALL_VALUE_TYPES_FORMAT_STR = "%Y-%m-%d %H:%M:%S.%f"

    __csv_file__ = 'all-value-types.csv'
    columns = [
        Column('int_col', IntegerColumnType()),
        Column('float_col', FloatColumnType()),
        Column('string_col', StringColumnType()),
        Column('date_col', DateColumnType(ALL_VALUE_TYPES_FORMAT_STR))
    ]
Exemple #7
0
class IntSingle(Model):
    columns = [Column('value', IntegerColumnType())]
Exemple #8
0
class ModelLevel3(Model):
    __csv_file__ = "model_level3.csv"
    columns = [
        Column('id', IntegerColumnType(), key=PrimaryKey()),
        Column('value', IntegerColumnType())
    ]
Exemple #9
0

class Person(Model):
    __csv_file__ = "people.csv"

    columns = [
        Column('id', IntegerColumnType(), key=PrimaryKey()),
        Column('last_name', StringColumnType()),
        Column('first_name', StringColumnType()),
    ]


# TODO: here's the remedy to the class in a class reference problem.
Person.columns.append(
    Column('parent_id',
           IntegerColumnType(),
           key=ForeignKey('id', Person),
           object_field='parent'))


class Manufacturer(Model):
    __csv_file__ = 'manufacturers.csv'
    columns = [
        Column('manufacturer_id', StringColumnType(), key=PrimaryKey()),
        Column('description', StringColumnType()),
        Column('contact_id',
               IntegerColumnType(),
               key=ForeignKey('person_id', Person),
               object_field='contact')
    ]
Exemple #10
0
 def test_compatible_type(self):
     col = Column('f1', IntegerColumnType())
     assert col.compatible_type(100)
     assert not col.compatible_type(100.0)
     assert not col.compatible_type('string')
     assert not col.compatible_type(test_date)
Exemple #11
0
 def test_cast(self):
     col = IntegerColumnType()
     assert col.cast('100') == 100
     with pytest.raises(ValueError) as cast_error:
         col.cast('100.5'), 100
     assert "invalid literal for int() with base 10: '100.5'" in str(cast_error.value)