Exemple #1
0
class Cowboy(sheraf.models.IntOrderedNamedAttributesModel):
    table = "my_model_queryset"
    age = sheraf.IntegerAttribute()
    name = sheraf.StringAttribute(default="John Doe")
    email = sheraf.StringAttribute().index(unique=True)
    genre = sheraf.StringAttribute(default="M")
    size = sheraf.IntegerAttribute().index()
Exemple #2
0
 class Model(tests.UUIDAutoModel):
     set = sheraf.SetAttribute(
         sheraf.SetAttribute(
             sheraf.StringAttribute(),
             persistent_type=persistent_type,
         ),
         persistent_type=persistent_type,
     ).index()
Exemple #3
0
class CommonModelDefaultValuesMethodsA(tests.IntAutoModel):
    def lower(self, value):
        return {value.lower()}

    foo = sheraf.StringAttribute()
    bar = sheraf.SimpleAttribute()
    theindex = sheraf.Index(foo, bar, values=lower)

    @theindex.values(bar)
    def upper(self, bar):
        return {bar.upper()}
Exemple #4
0
class CommonModelDifferentValuesMethodsB(tests.IntAutoModel):
    foo = sheraf.StringAttribute()
    bar = sheraf.SimpleAttribute()
    theindex = sheraf.Index(foo, bar)

    @theindex.values(foo)
    def lower(self, foo):
        return {foo.lower()}

    @theindex.values(bar)
    def upper(self, bar):
        return {bar.upper()}
Exemple #5
0
 class Horseboy(tests.UUIDAutoModel):
     name = sheraf.StringAttribute()
     horses = sheraf.IndexedModelAttribute(Horse)
Exemple #6
0
class Horse(sheraf.AttributeModel):
    name = sheraf.StringAttribute().index(primary=True)
    size = sheraf.IntegerAttribute()
Exemple #7
0
 class M(tests.UUIDAutoModel):
     foo = sheraf.StringAttribute()
Exemple #8
0
    m = Model.create()
    m.set = {1, 2, 3}

    m.edit({"set": [1, 2]}, deletion=True)
    assert {1, 2} == set(m.set)

    m.edit({"set": [1, 2]}, edition=True)
    assert {1, 2} == set(m.set)

    m.edit({"set": [1, 2, 3]}, addition=True)
    assert {1, 2, 3} == set(m.set)


@pytest.mark.parametrize("persistent_type", [sheraf.types.Set, set])
@pytest.mark.parametrize("subattribute", [None, sheraf.StringAttribute()])
def test_indexation(sheraf_database, persistent_type, subattribute):
    class Model(tests.UUIDAutoModel):
        set = sheraf.SetAttribute(
            subattribute,
            persistent_type=persistent_type,
        ).index()

    with sheraf.connection(commit=True) as conn:
        m = Model.create(set=["foo", "bar"])
        assert {m.raw_identifier: m.mapping} == dict(
            conn.root()[Model.table]["set"]["foo"]
        )
        assert {m.raw_identifier: m.mapping} == dict(
            conn.root()[Model.table]["set"]["bar"]
        )
Exemple #9
0
 class Cowboy(sheraf.Model):
     table = "future_cowboys"
     name = sheraf.StringAttribute().index()
Exemple #10
0
 class Model(tests.UUIDAutoModel):
     attr = sheraf.StringAttribute().index()
Exemple #11
0
class CliModel(sheraf.Model):
    table = "climymodel"
    foo = sheraf.StringAttribute().index()
    boo = sheraf.StringAttribute().index()