#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-
#-----------------------------------------------------------------------------
# Modeling Framework: an Object-Relational Bridge for python
#
# Copyright (c) 2001-2004 Sbastien Bigaret <sbigaret@users.sourceforge.net>
# All rights reserved.
#
# This file is part of the Modeling Framework.
#
# This code is distributed under a "3-clause BSD"-style license;
# see the LICENSE file for details.
#-----------------------------------------------------------------------------
"""Tests for Attribute"""
import unittest
if __name__ == "__main__":
import utils, sys
utils.fixpath()
from Modeling.KeyValueCoding import KeyValueCoding
from Modeling import ModelSet
from Modeling.Model import Model
from Modeling.Attribute import Attribute
# Classes for tests
from testPackages.AuthorBooks.Writer import Writer
from testPackages.AuthorBooks.Book import Book
# load the model
from Modeling.Model import ModelError
if 'GlobalSetUp' and not ModelSet.defaultModelSet().modelNamed('AuthorBook'):
from os import getcwd,path
xmlmodelPath=path.join(getcwd(),'xmlmodels/model_AuthorBook.xml')
modelSet=ModelSet.ModelSet()
modelSet.addModelFromXML({'file': xmlmodelPath})
## Tests begin here
class TestAttributes(unittest.TestCase):
def setUp(self):
"setUp"
self.model=modelSet.modelNamed('AuthorBook')
def test_01_relationshipPathObjects(self):
"[Attribute] relationshipPathObjects"
book=self.model.entityNamed('Book')
writer=self.model.entityNamed('Writer')
writer_bookTitle=writer.attributeNamed('bookTitle')
toBook=writer.relationshipNamed('book')
self.assertEqual(writer_bookTitle.relationshipPathObjects(),
(toBook, ))
def test_02_relationshipPath(self):
"[Attribute] relationshipPath"
writer=self.model.entityNamed('Writer')
writer_bookTitle=writer.attributeNamed('bookTitle')
self.assertEqual(writer_bookTitle.relationshipPath(), 'book')
def test_03_finalAttribute(self):
"[Attribute] finalAttribute"
book=self.model.entityNamed('Book')
writer=self.model.entityNamed('Writer')
writer_bookTitle=writer.attributeNamed('bookTitle')
bookTitle=book.attributeNamed('title')
self.assertEqual(writer_bookTitle.finalAttribute(), bookTitle)
# Build the test suite
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestAttributes, "test_"))
return suite
if __name__ == "__main__":
errs = utils.run_suite(test_suite())
sys.exit(errs and 1 or 0)
|