def testGetClubContactsHtml(self): contactsByRole = {} contactsByRole["Secretary"] = [(PersonData(name="Contact 1", address="Buckingham Palace", phoneNumbers=["0124124"]), RoleData(email="thesecretary"))] contactsByRole["Under-16"] = [(PersonData(name="Contact 2", phoneNumbers=["113"]), RoleData())] contactsByRole["Captain"] = [(PersonData(name="Contact 3", phoneNumbers=["999"]), RoleData())] result = FullContacts("").getClubContactsHtml("My Club", contactsByRole) expectedResult = """ <tr> <td class="role">My Club</td> <td> Secretary: <script language="javascript"> document.write(mailTo("thesecretary", "", "", "Contact 1")); </script> <noscript>Contact 1<i> (Javascript not enabled: cannot display mail link)</i> </noscript><br> Buckingham Palace<br> 0124124<br> Captain: Contact 3, 999<br> Under-16: Contact 2, 113 </td> </tr> """ self.assertMultiLineEqual(expectedResult, result)
def testGetClubContactListHtmlNotFullSecretaryNotSpecified(self): contactsByRole = {} contactsByRole["asdgsdags"] = (PersonData(name="Contact 1", address="Buckingham Palace", phoneNumbers=["0124124"]), RoleData(email="thesecretary")) contactsByRole["Under-16"] = (PersonData(name="Contact 2", phoneNumbers=["113"]), RoleData()) contactsByRole["Captain"] = (PersonData(name="Contact 3", phoneNumbers=["999"]), RoleData()) result = PartialContacts("").getClubContactListHtml(contactsByRole) expectedResult = "TBC" self.assertMultiLineEqual(expectedResult, result)
def testGetRoles(self): xml = """ <person> <role name="Chairman"> <email id="chairman" /> </role> <role name="Secretary" club="Denmead"> <email id="denmead.secretary" /> </role> <role name="Captain" club="Denmead" /> </person> """ personElement = ElementTree.fromstring(xml) dataObject = PersonData() PartialContacts("").getRoles(personElement, dataObject) expectedResults = [] expectedResults.append(("Chairman", None, "chairman")) expectedResults.append(("Secretary", "Denmead", "denmead.secretary")) expectedResults.append(("Captain", "Denmead", None)) for expected, result in zip(expectedResults, dataObject.roles): expName, expClub, expEmail = expected self.assertEquals(expName, result.name) self.assertEquals(expClub, result.club) self.assertEquals(expEmail, result.email) self.assertEquals(len(expectedResults), len(dataObject.roles))
def testGetPersonHtmlPersonSpecifiedEmailNotSpecifiedNotFull(self): person = PersonData(name="Pandolf Ironhead") email = None defaultText = "Hello goodbye" result = PartialContacts("").getPersonHtml(person, email, defaultText, True) expectedResult = "Pandolf Ironhead" self.assertEquals(expectedResult, result)
def testGetAddressNoAddressSpecified(self): xml = """ <person/> """ personElement = ElementTree.fromstring(xml) dataObject = PersonData() PartialContacts("").getAddress(personElement, dataObject) expectedResult = None self.assertEquals(expectedResult, dataObject.address)
def testGetPhoneNumbersNoNumbersSpecified(self): xml = """ <person> <address> Four Stoneycroft Rise </address> </person> """ personElement = ElementTree.fromstring(xml) dataObject = PersonData() PartialContacts("").getPhoneNumbers(personElement, dataObject) expectedResult = [] self.assertEquals(expectedResult, dataObject.phoneNumbers)
def testGetNameNameSpecified(self): xml = """ <person> <name> Jeremy Hicks </name> </person> """ personElement = ElementTree.fromstring(xml) dataObject = PersonData() PartialContacts("").getName(personElement, dataObject) expectedResult = "Jeremy Hicks" self.assertEquals(expectedResult, dataObject.name)
def testGetClubContactListHtmlNotFullSecretarySpecified(self): contactsByRole = {} contactsByRole["Secretary"] = [(PersonData(name="Contact 1", address="Buckingham Palace", phoneNumbers=["0124124"]), RoleData(email="thesecretary"))] contactsByRole["Under-16"] = [(PersonData(name="Contact 2", phoneNumbers=["113"]), RoleData())] contactsByRole["Captain"] = [(PersonData(name="Contact 3", phoneNumbers=["999"]), RoleData())] result = PartialContacts("").getClubContactListHtml(contactsByRole) expectedResult = """ <script language="javascript"> document.write(mailTo("thesecretary", "", "", "Contact 1")); </script> <noscript>Contact 1<i> (Javascript not enabled: cannot display mail link)</i> </noscript> """ self.assertMultiLineEqual(expectedResult, result)
def testGetPersonHtmlPersonSpecifiedEmailNotSpecifiedFullAddressNoPhoneNumbers( self): person = PersonData(name="Pandolf Ironhead", address="Schloss Eisenkopf") email = None defaultText = "Hello goodbye" result = FullContacts("").getPersonHtml(person, email, defaultText, True) expectedResult = """ Pandolf Ironhead<br> Schloss Eisenkopf """ self.assertMultiLineEqual(expectedResult, result)
def testGetPhoneNumbersSomeNumbersSpecified(self): xml = """ <person> <phone> 07423152361 </phone> <phone>02392 563323</phone> <phone>0193 282 2282</phone> </person> """ personElement = ElementTree.fromstring(xml) dataObject = PersonData() PartialContacts("").getPhoneNumbers(personElement, dataObject) expectedResult = ["07423 152361", "023 9256 3323", "01932 822282"] self.assertEquals(expectedResult, dataObject.phoneNumbers)
def testGetPersonHtmlPersonSpecifiedEmailNotSpecifiedFullNoAddressMultiplePhoneNumbers( self): person = PersonData(name="Pandolf Ironhead", phoneNumbers=["01329312895", "07878727131"]) email = None defaultText = "Hello goodbye" result = FullContacts("").getPersonHtml(person, email, defaultText, True) expectedResult = """ Pandolf Ironhead, 01329312895 / 07878727131 """ self.assertMultiLineEqual(expectedResult, result)
def testGetPersonHtmlPersonSpecifiedEmailSpecifiedNotFull(self): person = PersonData(name="Pandolf Ironhead") email = "pandolf" defaultText = "Hello goodbye" result = PartialContacts("").getPersonHtml(person, email, defaultText, True) expectedResult = """ <script language="javascript"> document.write(mailTo("pandolf", "", "", "Pandolf Ironhead")); </script> <noscript>Pandolf Ironhead<i> (Javascript not enabled: cannot display mail link)</i> </noscript> """ self.assertMultiLineEqual(expectedResult, result)
def testGetCommitteeContactHtmlPersonForRoleNoEmail(self): roleName = "Manager" person = PersonData(name="Steve Evans") role = RoleData() defaultText = "Not filled at the moment" result = PartialContacts("").getCommitteeContactHtml( roleName, person, role, defaultText) expectedResult = """ <tr> <td class="role">Manager</td> <td>Steve Evans</td> </tr> """ self.assertMultiLineEqual(expectedResult, result)
def testGetPersonHtmlPersonSpecifiedEmailSpecifiedFullNoAddressMultiplePhoneNumbers( self): person = PersonData(name="Pandolf Ironhead", phoneNumbers=["01329312895", "07878727131"]) email = "pandolf" defaultText = "Hello goodbye" result = FullContacts("").getPersonHtml(person, email, defaultText, True) expectedResult = """ <script language="javascript"> document.write(mailTo("pandolf", "", "", "Pandolf Ironhead")); </script> <noscript>Pandolf Ironhead<i> (Javascript not enabled: cannot display mail link)</i> </noscript>, 01329312895 / 07878727131 """ self.assertMultiLineEqual(expectedResult, result)
def testGetCommitteeContactHtmlPersonForRoleWithEmail(self): roleName = "Manager" person = PersonData(name="Steve Evans") role = RoleData(email="rufcmgr") defaultText = "Not filled at the moment" result = PartialContacts("").getCommitteeContactHtml( roleName, person, role, defaultText) expectedResult = """ <tr> <td class="role">Manager</td> <td><script language="javascript"> document.write(mailTo("rufcmgr", "", "", "Steve Evans")); </script> <noscript>Steve Evans<i> (Javascript not enabled: cannot display mail link)</i> </noscript></td> </tr> """ self.assertMultiLineEqual(expectedResult, result)
def testGetAllClubsContactHtml(self): people = [] people.append( PersonData(name="Jeremy Hicks", roles=[ RoleData(name="Secretary", email="rufc", club="Rotherham") ])) people.append( PersonData(name="Peter Hicks", roles=[ RoleData(name="Secretary", email="pvfc", club="Port Vale") ])) people.append( PersonData(name="Joe Hicks", roles=[ RoleData(name="Secretary", email="pfc", club="Portsmouth") ])) contactsByClubAndRole = {} for p in people: role = p.roles[0] contactsByClubAndRole[role.club] = {role.name: [(p, p.roles[0])]} result = PartialContacts("").getAllClubsContactsHtml( contactsByClubAndRole) expectedResult = """ <table> <tbody> <tr> <td class="role">Portsmouth</td> <td> <script language="javascript"> document.write(mailTo("pfc", "", "", "Joe Hicks")); </script> <noscript>Joe Hicks<i> (Javascript not enabled: cannot display mail link)</i> </noscript> </td> </tr> <tr> <td class="role">Port Vale</td> <td> <script language="javascript"> document.write(mailTo("pvfc", "", "", "Peter Hicks")); </script> <noscript>Peter Hicks<i> (Javascript not enabled: cannot display mail link)</i> </noscript> </td> </tr> <tr> <td class="role">Rotherham</td> <td> <script language="javascript"> document.write(mailTo("rufc", "", "", "Jeremy Hicks")); </script> <noscript>Jeremy Hicks<i> (Javascript not enabled: cannot display mail link)</i> </noscript> </td> </tr> </tbody> </table> """ self.assertMultiLineEqual(expectedResult, result)
def testGetCommitteeContactsSomeRolesFilled(self): personList = [] personList.append(PersonData(name="Carol Cooper", \ roles=[RoleData(name="President", email="president")])) personList.append(PersonData(name="Richard Matthews", \ roles=[RoleData(name="Chairman", email="chairman"), \ RoleData(name="Secretary", club="Denmead", email="denmead.secretary")])) personList.append(PersonData(name="Jeremy Hicks", \ roles=[RoleData(name="Fixture secretary", email="fixturesec"), \ RoleData(name="Webmaster", email="website")])) result = PartialContacts("").getCommitteeContacts(personList) expectedResult = """ <table> <tbody> <tr> <td class="role">President</td> <td><script language="javascript"> document.write(mailTo("president", "", "", "Carol Cooper")); </script> <noscript>Carol Cooper<i> (Javascript not enabled: cannot display mail link)</i> </noscript></td> </tr> <tr> <td class="role">Chairman</td> <td><script language="javascript"> document.write(mailTo("chairman", "", "", "Richard Matthews")); </script> <noscript>Richard Matthews<i> (Javascript not enabled: cannot display mail link)</i> </noscript></td> </tr> <tr> <td class="role">Vice-Chairman</td> <td>Currently vacant</td> </tr> <tr> <td class="role">Secretary</td> <td>Currently vacant</td> </tr> <tr> <td class="role">Treasurer</td> <td>Currently vacant</td> </tr> <tr> <td class="role">Umpires' Co-ordinator</td> <td>Currently vacant</td> </tr> <tr> <td class="role">Fixture Secretary</td> <td><script language="javascript"> document.write(mailTo("fixturesec", "", "", "Jeremy Hicks")); </script> <noscript>Jeremy Hicks<i> (Javascript not enabled: cannot display mail link)</i> </noscript></td> </tr> <tr> <td class="role">Webmaster</td> <td><script language="javascript"> document.write(mailTo("website", "", "", "Jeremy Hicks")); </script> <noscript>Jeremy Hicks<i> (Javascript not enabled: cannot display mail link)</i> </noscript></td> </tr> </tbody> </table> """ self.assertMultiLineEqual(expectedResult, result)