示例#1
0
 def check(self, element):
     object_id = element.get("objectId")
     if element.tag == "Candidate":
         ballot_name_element = element.find("BallotName")
         if ballot_name_element is None:
             return
         ballot_name = ballot_name_element.find("Text")
         if ballot_name is None:
             return
         name = ballot_name.text
         if name and name.isupper():
             raise base.ElectionWarning(
                 "Line %d. Candidate %s has name in all upper case letters." %
                 (element.sourceline, object_id))
     elif element.tag == "Contest":
         name_element = element.find("Name")
         if name_element is None:
             return
         name = name_element.text
         if name and name.isupper():
             raise base.ElectionWarning(
                 "Line %d. Contest %s has name in all upper case letters." %
                 (element.sourceline, object_id))
     else:
         full_name_element = element.find("FullName")
         if full_name_element is None:
             return
         full_name = full_name_element.find("Text")
         if full_name is None:
             return
         name = full_name.text
         if name and name.isupper():
             raise base.ElectionWarning(
                 "Line %d. Person %s has name in all upper case letters." %
                 (element.sourceline, object_id))
示例#2
0
 def check(self, element):
     if element == self.previous:
         return
     self.previous = element
     if ((element.text is None or element.text.strip() == "") and
             not len(element)):
         raise base.ElectionWarning(
             "Line %d. %s optional element included although it "
             "is empty" % (element.sourceline, element.tag))
示例#3
0
 def check(self, element):
     contest_name = element.find("Name")
     if contest_name is not None and contest_name.text is not None:
         c_name = contest_name.text.replace(" ", "").lower()
         for p_text in self.party_text:
             if p_text in c_name:
                 raise base.ElectionWarning(
                     "Line %d. Name of contest - %s, "
                     "contains text that implies it is a partisan primary "
                     "but is not marked up as such." % (
                         element.sourceline, contest_name.text))
示例#4
0
 def check(self, element):
     gpunit_id = element.get("objectId")
     if not gpunit_id:
         return
     gpunit_type = element.find("Type")
     if gpunit_type is not None and gpunit_type.text in self.districts:
         for extern_id in element.iter("ExternalIdentifier"):
             id_type = extern_id.find("Type")
             if id_type is not None and id_type.text == "ocd-id":
                 value = extern_id.find("Value")
                 if value is None or not hasattr(value, "text"):
                     continue
                 if value.text not in self.ocds:
                     raise base.ElectionWarning(
                         "The OCD ID %s in GpUnit %s defined on line %d is "
                         "not valid" % (
                             value.text, gpunit_id, value.sourceline))
 def check(self, element):
     id_type = element.find("Type")
     if id_type is None:
         return
     id_type_text = id_type.text
     if id_type_text != "ocd-id":
         return
     id_value = element.find("Value")
     if id_value is None:
         return
     ocdid = id_value.text
     if ocdid is None or not ocdid.strip():
         return
     if not ocdid.islower():
         raise base.ElectionWarning(
             "Line %d. OCD-ID %s is not in all lower case letters. "
             "Valid OCD-IDs should be all lowercase" %
             (element.sourceline, ocdid))
示例#6
0
 def check(self, element):
     party_id = element.find("PartyId")
     if party_id is None or not party_id.text:
         raise base.ElectionWarning("Line %d: Candidate %s is missing party data" % (
             element.sourceline, element.get("objectId")))
示例#7
0
 def check(self, element):
     if element.text is not None and element.text.strip() == "":
         raise base.ElectionWarning(
             "Line %d. %s is empty" % (
                 element.sourceline, element.tag))