def setUp(self):
		self.x = XMLUploadWorker()
		self.handler = ExportHandler()
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test2.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))	
		
		self.x.createLinks(root.find("crises"), False)
		self.x.createLinks(root.find("people"), False)
		self.x.createLinks(root.find("organizations"), False)
class TestExportHandler(unittest.TestCase):
	def setUp(self):
		self.x = XMLUploadWorker()
		self.handler = ExportHandler()
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test2.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))	
		
		self.x.createLinks(root.find("crises"), False)
		self.x.createLinks(root.find("people"), False)
		self.x.createLinks(root.find("organizations"), False)
	
	def test_getProperModelByKey1(self):
		pagetype = "person-refs"
		key = db.get(db.Key.from_path("Person","george-w-bush")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		self.assert_(model != None)
		self.assert_(model.name == "George W. Bush")
		self.assert_(model.city == "Washington D.C.")
		
	def test_getProperModelByKey2(self):
		pagetype = "organization-refs"
		key = db.get(db.Key.from_path("Organization","nyfd")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		self.assert_(model != None)
		self.assert_(model.name == "New York City Fire Department")
		self.assert_(model.city == "Staten Island")
	
	def test_getProperModelByKey3(self):
		pagetype = "crisis-refs"
		key = db.get(db.Key.from_path("Crisis","beslan-school-siege")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		self.assert_(model != None)
		self.assert_(model.name == "Beslan School Siege")
		self.assert_(model.city == "Beslan")
		
	def test_getProperList1(self):
		pagetype = "person-refs"
		key = db.get(db.Key.from_path("Person","george-w-bush")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		pagetype = "organization-refs"
		
		keys = self.handler.getProperList(pagetype, model)
		someModel = Organization.get(keys[0])
		
		self.assert_(someModel != None)
		self.assert_(someModel.name == "New York City Fire Department")
		self.assert_(someModel.city == "Staten Island")
		
	def test_getProperList2(self):
		pagetype = "organization-refs"
		key = db.get(db.Key.from_path("Organization","nyfd")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		pagetype = "crisis-refs"
		
		keys = self.handler.getProperList(pagetype, model)
		someModel = Crisis.get(keys[0])
		
		self.assert_(someModel != None)
		self.assert_(someModel.city == "New York")
	
	def test_getProperList3(self):
		pagetype = "crisis-refs"
		key = db.get(db.Key.from_path("Crisis","beslan-school-siege")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		pagetype = "person-refs"
		
		keys = self.handler.getProperList(pagetype, model)
		someModel = Person.get(keys[0])
		
		self.assert_(someModel != None)
		self.assert_(someModel.name == "Vladimir Putin")
		self.assert_(someModel.city == "Moscow")
		
	def test_organization_details(self) :
		pagetype = "organization-refs"
		key = db.get(db.Key.from_path("Organization","nyfd")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		
		element = Element("main")
		self.handler.organization_details(element, model)
		
		self.assert_(element.find("address") != None)
		self.assert_(element.find("address").text == "New York City, NY, United States")
		self.assert_(element.find("email") != None)
		self.assert_(element.find("email").text == "*****@*****.**")
		self.assert_(element.find("phone") != None)
		self.assert_(element.find("phone").text)
		
	def test_crisis_details(self) :
		pagetype = "crisis-refs"
		key = db.get(db.Key.from_path("Crisis","beslan-school-siege")).key()
		model = self.handler.getProperModelByKey(pagetype, key)
		
		element = Element("main")
		self.handler.crisis_details(element, model)
		impact = element.find("human-impact")
		
		self.assert_(element.find("start-date") != None)
		self.assert_(element.find("start-date").text == "2004-09-01T09:00:00")
		self.assert_(impact.find("deaths") != None)
		self.assert_(impact.find("deaths").text == "380")
		self.assert_(impact.find("missing") != None)
		self.assert_(impact.find("missing").text == "0")
		self.assert_(impact.find("injured") != None)
		self.assert_(impact.find("injured").text == "783")
		self.assert_(impact.find("displaced") != None)
		self.assert_(impact.find("displaced").text == "0")