Esempio n. 1
0
    def test_string_format(self):

        mapper = ClassMapper([], modules=[test01])
        validator = ModelValidator(mapper)
        self.db = CouchDBWrapper(mapper,
                                 COUCHDB_URL,
                                 COUCHDB_NAME,
                                 reset=True,
                                 validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        cat = Cat(name="puss",
                  owner_id=paul.key,
                  legs=3,
                  email="*****@*****.**")
        cat.save(self.db)
        cat.email = "paulglowinthedark.co.uk"
        self.assertRaises(FamValidationError, self.db.put, cat)

        self.db.session.close()
Esempio n. 2
0
    def test_make_a_validator(self):

        mapper = ClassMapper([Dog, Cat, Person, JackRussell])
        validator = ModelValidator(None,
                                   classes=[Dog, Cat, Person, JackRussell])
        self.db = CouchDBWrapper(mapper,
                                 COUCHDB_URL,
                                 COUCHDB_NAME,
                                 reset=True,
                                 validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)

        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        cat = Cat(name="puss", owner_id=paul.key)

        self.assertRaises(FamValidationError, cat.save, self.db)

        self.db.session.close()
Esempio n. 3
0
 def test_ref_to(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     self.assertEqual(cat.owner, paul)
     self.assertEqual(cat.owner.name, "paul")
Esempio n. 4
0
 def test_get_cat(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     another = Cat.get(self.db, cat.key)
     self.assertEqual(cat, another)
Esempio n. 5
0
    def test_make_a_validator_from_modules(self):

        mapper = ClassMapper([], modules=[test01])
        validator = ModelValidator(classes=[Dog, Cat, Person, JackRussell])
        self.db = CouchDBWrapper(mapper, COUCHDB_URL, COUCHDB_NAME, reset=True, validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        #missing legs
        cat = Cat(name="puss", owner_id=paul.key)

        self.assertRaises(FamValidationError, cat.save, self.db)

        #additional properties
        def failing_cat():
            cat = Cat(name="puss", owner_id=paul.key, legs=2, collar="green")

        self.assertRaises(FamValidationError, failing_cat)
        dog = Dog(name="fly")
        self.db.put(dog)
        dog.tail = "long"
        self.db.put(dog)

        self.db.session.close()
Esempio n. 6
0
 def test_ref_to(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     self.assertEqual(cat.owner, paul)
     self.assertEqual(cat.owner.name, "paul")
Esempio n. 7
0
    def test_make_a_validator_from_modules(self):

        mapper = ClassMapper([], modules=[test01])
        validator = ModelValidator(mapper)
        self.db = CouchDBWrapper(mapper,
                                 COUCHDB_URL,
                                 COUCHDB_NAME,
                                 reset=True,
                                 validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        #missing legs
        cat = Cat(name="puss", owner_id=paul.key)

        self.assertRaises(FamValidationError, cat.save, self.db)

        #additional properties
        def failing_cat():
            cat = Cat(name="puss", owner_id=paul.key, legs=2, collar="green")

        self.assertRaises(FamValidationError, failing_cat)
        dog = Dog(name="fly")
        self.db.put(dog)
        dog.tail = "long"
        self.db.put(dog)

        self.db.session.close()
Esempio n. 8
0
 def test_get_cat(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     another = Cat.get(self.db, cat.key)
     self.assertEqual(cat, another)
Esempio n. 9
0
 def test_refs_with_inheritance(self):
     paul = Person(name="paul")
     paul.save(self.db)
     jack = JackRussell()
     jack.owner_id = paul.key
     jack.name = "jack"
     jack.save(self.db)
     self.assertEqual(list(paul.dogs)[0], jack)
Esempio n. 10
0
 def test_make_an_object_saved_cas(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     self.assertEqual(cat.namespace, NAMESPACE)
     self.assertEqual(cat.type, "cat")
     self.assertNotEqual(cat.rev, None)
Esempio n. 11
0
 def test_make_an_object_saved_cas(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     self.assertEqual(cat.namespace, NAMESPACE)
     self.assertEqual(cat.type, "cat")
     self.assertNotEqual(cat.rev, None)
Esempio n. 12
0
 def test_refs_with_inheritance(self):
     paul = Person(name="paul")
     paul.save(self.db)
     jack = JackRussell()
     jack.owner_id = paul.key
     jack.name = "jack"
     jack.save(self.db)
     self.assertEqual(list(paul.dogs)[0], jack)
Esempio n. 13
0
 def test_ref_from(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key)
     cat.save(self.db)
     cat2 = Cat(name="puss", owner_id=paul.key)
     cat2.save(self.db)
     self.assertEqual(len(paul.cats), 2)
     self.assertTrue(paul.cats[0] == cat or paul.cats[1] == cat)
Esempio n. 14
0
 def test_ref_from(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key)
     cat.save(self.db)
     cat2 = Cat(name="puss", owner_id=paul.key)
     cat2.save(self.db)
     self.assertEqual(len(paul.cats), 2)
     self.assertTrue(paul.cats[0] == cat or paul.cats[1] == cat)
Esempio n. 15
0
 def test_update_cat(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     cat.name = "blackie"
     cat.save(self.db)
     self.assertEqual(cat.name, "blackie")
     self.assertEqual(cat._properties["name"], "blackie")
     self.assertFalse("name" in cat.__dict__.keys())
Esempio n. 16
0
    def test_delete_cat_refs(self):
        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
        cat.save(self.db)
        key = cat.key
        cat2 = Cat(name="puss", owner_id=paul.key, legs=2)
        cat2.save(self.db)

        cats = list(paul.cats)
Esempio n. 17
0
    def test_null_values(self):
        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, colour=None)
        self.assertTrue(cat.colour is None)
        self.assertTrue(cat._properties["colour"] is None)
        cat.save(self.db)

        another = Cat.get(self.db, cat.key)
        self.assertEqual(cat, another)
Esempio n. 18
0
 def test_update_cat_fails(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     cat.colour = "black"
     cat.save(self.db)
     def change_colour():
         cat.colour = "white"
     self.assertRaises(FamImmutableError, change_colour)
Esempio n. 19
0
 def test_update_cat(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     cat.name = "blackie"
     cat.save(self.db)
     self.assertEqual(cat.name, "blackie")
     self.assertEqual(cat._properties["name"], "blackie")
     self.assertFalse("name" in cat.__dict__.keys())
Esempio n. 20
0
    def test_update_cat_fails(self):
        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
        cat.save(self.db)
        cat.colour = "black"
        cat.save(self.db)

        def change_colour():
            cat.colour = "white"

        self.assertRaises(FamImmutableError, change_colour)
Esempio n. 21
0
 def test_delete_dog_refs(self):
     paul = Person(name="paul")
     paul.save(self.db)
     dog = Dog(name="rufus", owner_id=paul.key)
     dog.save(self.db)
     key = dog.key
     dog2 = Dog(name="fly", owner_id=paul.key)
     dog2.save(self.db)
     reviveddog1 = self.db.get(key)
     self.assertTrue(reviveddog1 is not None)
     paul.delete(self.db)
     reviveddog2 = self.db.get(key)
     self.assertTrue(reviveddog2 is not None)
Esempio n. 22
0
 def test_delete_cat_refs(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key)
     cat.save(self.db)
     key = cat.key
     cat2 = Cat(name="puss", owner_id=paul.key)
     cat2.save(self.db)
     revivedcat1 = self.db.get(key)
     self.assertNotEqual(revivedcat1, None)
     paul.delete(self.db)
     revivedcat2 = self.db.get(key)
     self.assertEqual(revivedcat2, None)
Esempio n. 23
0
 def test_ref_from_multiple_index(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     dog = Dog(name="fly", owner=paul)
     self.db.put(dog)
     cats = list(paul.cats)
     self.assertEqual(len(cats), 1)
     dogs = list(paul.dogs)
     self.assertEqual(len(dogs), 1)
     animals = list(paul.animals)
     self.assertEqual(len(animals), 2)
Esempio n. 24
0
 def test_ref_from_multiple_index(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     dog = Dog(name="fly", owner=paul)
     self.db.put(dog)
     cats = list(paul.cats)
     self.assertEqual(len(cats), 1)
     dogs = list(paul.dogs)
     self.assertEqual(len(dogs), 1)
     animals = list(paul.animals)
     self.assertEqual(len(animals), 2)
Esempio n. 25
0
 def test_delete_dog_refs(self):
     paul = Person(name="paul")
     paul.save(self.db)
     dog = Dog(name="rufus", owner_id=paul.key)
     dog.save(self.db)
     key = dog.key
     dog2 = Dog(name="fly", owner_id=paul.key)
     dog2.save(self.db)
     reviveddog1 = self.db.get(key)
     self.assertTrue(reviveddog1 is not None)
     paul.delete(self.db)
     reviveddog2 = self.db.get(key)
     self.assertTrue(reviveddog2 is not None)
Esempio n. 26
0
 def test_delete_cat_refs(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key)
     cat.save(self.db)
     key = cat.key
     cat2 = Cat(name="puss", owner_id=paul.key)
     cat2.save(self.db)
     revivedcat1 = self.db.get(key)
     self.assertNotEqual(revivedcat1, None)
     paul.delete(self.db)
     revivedcat2 = self.db.get(key)
     self.assertEqual(revivedcat2, None)
Esempio n. 27
0
 def test_delete_dog_to_refs(self):
     paul = Person(name="paul")
     paul.save(self.db)
     dog = Dog(name="rufus", owner_id=paul.key)
     dog.save(self.db)
     key = dog.key
     dog2 = Dog(name="fly", owner_id=paul.key)
     dog2.save(self.db)
     self.assertTrue(dog2.owner is not None)
     key = paul.key
     dog.delete(self.db)
     revivedpaul = self.db.get(key)
     self.assertTrue(revivedpaul is None)
     refresheddog2 = Dog.get(self.db, dog2.key)
     self.assertTrue(refresheddog2.owner is None)
Esempio n. 28
0
    def test_delete_cat_refs(self):
        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
        cat.save(self.db)
        key = cat.key
        cat2 = Cat(name="puss", owner_id=paul.key, legs=2)
        cat2.save(self.db)
        revivedcat1 = Cat.get(self.db, key)

        self.assertTrue(revivedcat1 is not None)

        paul.delete(self.db)
        revivedcat2 = self.db.get(key)
        self.assertTrue(revivedcat2 is None)
Esempio n. 29
0
        def test_make_a_validator_from_modules(self):

            validator = ModelValidator(modules=[test01])

            #add validator to db
            self.db.validator = validator
            paul = Person(name="paul")
            paul.save(self.db)
            cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
            cat.save(self.db)
            self.assertEqual(cat.owner, paul)
            self.assertEqual(cat.owner.name, "paul")
            cat = Cat(name="puss", owner_id=paul.key)

            self.assertRaises(FamValidationError, cat.save, self.db)
Esempio n. 30
0
 def test_delete_dog_to_refs(self):
     paul = Person(name="paul")
     paul.save(self.db)
     dog = Dog(name="rufus", owner_id=paul.key)
     dog.save(self.db)
     key = dog.key
     dog2 = Dog(name="fly", owner_id=paul.key)
     dog2.save(self.db)
     self.assertTrue(dog2.owner is not None)
     key = paul.key
     dog.delete(self.db)
     revivedpaul = self.db.get(key)
     self.assertTrue(revivedpaul is None)
     refresheddog2 = Dog.get(self.db, dog2.key)
     self.assertTrue(refresheddog2.owner is None)
Esempio n. 31
0
    def test_delete_cat_refs(self):
        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
        cat.save(self.db)
        key = cat.key
        cat2 = Cat(name="puss", owner_id=paul.key, legs=2)
        cat2.save(self.db)
        revivedcat1 = Cat.get(self.db, key)

        self.assertTrue(revivedcat1 is not None)

        paul.delete(self.db)
        revivedcat2 = self.db.get(key)
        self.assertTrue(revivedcat2 is None)
Esempio n. 32
0
        def test_make_a_validator_from_classes(self):

            validator = ModelValidator(None, classes=[Cat, Person])

            #add validator to db
            self.db.validator = validator

            paul = Person(name="paul")
            paul.save(self.db)
            cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
            cat.save(self.db)
            self.assertEqual(cat.owner, paul)
            self.assertEqual(cat.owner.name, "paul")

            cat = Cat(name="puss", owner_id=paul.key)

            self.assertRaises(FamValidationError, cat.save, self.db)
Esempio n. 33
0
    def test_make_a_validator(self):

        mapper = ClassMapper([Dog, Cat, Person, JackRussell])
        validator = ModelValidator(classes=[Dog, Cat, Person, JackRussell])
        self.db = CouchDBWrapper(mapper, COUCHDB_URL, COUCHDB_NAME, reset=True, validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        cat = Cat(name="puss", owner_id=paul.key)

        self.assertRaises(FamValidationError, cat.save, self.db)

        self.db.session.close()
Esempio n. 34
0
    def test_included_refs_from_in_validator(self):
        mapper = ClassMapper([], modules=[test01])
        validator = ModelValidator(modules=[test01])
        self.db = CouchDBWrapper(mapper, COUCHDB_URL, COUCHDB_NAME, reset=True, validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)

        paul_id = paul.key
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        paul = Person.get(self.db, paul_id)

        paul.save(self.db)

        self.db.session.close()
Esempio n. 35
0
    def test_string_format(self):

        mapper = ClassMapper([], modules=[test01])
        validator = ModelValidator(modules=[test01])
        self.db = CouchDBWrapper(mapper, COUCHDB_URL, COUCHDB_NAME, reset=True, validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")


        cat = Cat(name="puss", owner_id=paul.key, legs=3, email="*****@*****.**")
        cat.save(self.db)
        cat.email = "paulglowinthedark.co.uk"
        self.assertRaises(FamValidationError, self.db.put, cat)

        self.db.session.close()
Esempio n. 36
0
        def test_make_a_validator(self):


            validator = ModelValidator(None)

            validator.add_schema(test01.NAMESPACE, "cat", Cat)
            validator.add_schema(test01.NAMESPACE, "person", Person)

            #add validator to db
            self.db.validator = validator

            paul = Person(name="paul")
            paul.save(self.db)
            cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
            cat.save(self.db)
            self.assertEqual(cat.owner, paul)
            self.assertEqual(cat.owner.name, "paul")

            cat = Cat(name="puss", owner_id=paul.key)

            self.assertRaises(FamValidationError, cat.save, self.db)
Esempio n. 37
0
        def test_make_a_validator(self):


            validator = ModelValidator()

            validator.add_schema(test01.NAMESPACE, "cat", Cat)
            validator.add_schema(test01.NAMESPACE, "person", Person)

            #add validator to db
            self.db.validator = validator

            paul = Person(name="paul")
            paul.save(self.db)
            cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
            cat.save(self.db)
            self.assertEqual(cat.owner, paul)
            self.assertEqual(cat.owner.name, "paul")

            cat = Cat(name="puss", owner_id=paul.key)

            self.assertRaises(FamValidationError, cat.save, self.db)
Esempio n. 38
0
    def test_included_refs_from_in_validator(self):
        mapper = ClassMapper([], modules=[test01])
        validator = ModelValidator(mapper)
        self.db = CouchDBWrapper(mapper,
                                 COUCHDB_URL,
                                 COUCHDB_NAME,
                                 reset=True,
                                 validator=validator)
        self.db.update_designs()

        paul = Person(name="paul")
        paul.save(self.db)

        paul_id = paul.key
        cat = Cat(name="whiskers", owner_id=paul.key, legs=4)
        cat.save(self.db)
        self.assertEqual(cat.owner, paul)
        self.assertEqual(cat.owner.name, "paul")

        paul = Person.get(self.db, paul_id)

        paul.save(self.db)

        self.db.session.close()
Esempio n. 39
0
 def test_immutability_on_non_existant_value(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(legs=4, owner=paul)
     self.make_red(cat)
Esempio n. 40
0
 def test_immutability(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(colour="tabby", legs=4, owner=paul)
     self.assertRaises(FamImmutableError, self.make_red, cat)
Esempio n. 41
0
 def test_update_catfood(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     self.assertRaises(Exception, self.setcatfood)
Esempio n. 42
0
 def test_immutable_defaults(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(legs=4, owner=paul)
     self.assertTrue(cat.tail == True)
     self.assertRaises(FamImmutableError, self.cut_off_tail, cat)
Esempio n. 43
0
 def test_update_catfood(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(name="whiskers", owner_id=paul.key, legs=2)
     cat.save(self.db)
     self.assertRaises(Exception, self.setcatfood)
Esempio n. 44
0
 def test_getting_unknown_fails(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(legs=4, owner=paul)
     self.assertRaises(AttributeError, self.get_address, cat)
Esempio n. 45
0
 def test_getting_absent_no_defaults_returns_none(self):
     paul = Person(name="paul")
     paul.save(self.db)
     cat = Cat(legs=4, owner=paul)
     name = cat.name
     self.assertEqual(name, None)