def testZip(self): """Test that keys and values are zipped as desired. """ #equal keys and values keys = ['a', 'b', 'c'] values = ['1', '2', '3'] expected_dict = dict(zip(keys, values)) self.assertEqual(dicts.zip(keys, values), expected_dict) #extra key keys.append('d') expected_dict.update({'d': None}) self.assertEqual(dicts.zip(keys, values), expected_dict) #extra values values.extend(['4', '5']) expected_dict = dict(zip(keys, values)) self.assertEqual(dicts.zip(keys, values), expected_dict)
def testZip(self): """Test that keys and values are zipped as desired. """ # equal keys and values keys = ["a", "b", "c"] values = ["1", "2", "3"] expected_dict = dict(zip(keys, values)) self.assertEqual(dicts.zip(keys, values), expected_dict) # extra key keys.append("d") expected_dict.update({"d": None}) self.assertEqual(dicts.zip(keys, values), expected_dict) # extra values values.extend(["4", "5"]) expected_dict = dict(zip(keys, values)) self.assertEqual(dicts.zip(keys, values), expected_dict)
def mainEdit(self, request, page_name=None, **kwargs): """Displays the edit page for the main site settings page. Args: request: the standard Django HTTP request object page_name: the page name displayed in templates as page and header title kwargs: not used """ keys = self._logic.getKeyFieldNames() # No entity in this case, since Site key values are hard-coded for the # Site singleton, so pass in None to match parent method footprint. values = self._logic.getKeyValuesFromEntity(None) key_values = dicts.zip(keys, values) return self.edit(request, "edit", page_name, seed=key_values, **key_values)
def getKeyFieldsFromFields(self, dictionary): """Does any required massaging and filtering of dictionary. The resulting dictionary contains just the key names, and has any required translations/modifications performed. Args: dictionary: The arguments to massage """ if not dictionary: raise InvalidArgumentError keys = self.getKeyFieldNames() values = self.getKeyValuesFromFields(dictionary) key_fields = dicts.zip(keys, values) return key_fields