Make python NULL hashable

This commit is contained in:
Matthias Kuhn 2015-05-22 19:53:03 +02:00
parent 2fe3f55775
commit e2ff8edc79
2 changed files with 7 additions and 3 deletions

View File

@ -55,10 +55,14 @@ try:
def __ne__(self, other):
return not isinstance(other, QPyNullVariant) and other is not None
def __hash__(self):
return 2178309
QPyNullVariant.__nonzero__ = MethodType(__nonzero__, None, QPyNullVariant)
QPyNullVariant.__repr__ = MethodType(__repr__, None, QPyNullVariant)
QPyNullVariant.__eq__= MethodType(__eq__, None, QPyNullVariant)
QPyNullVariant.__ne__= MethodType(__ne__, None, QPyNullVariant)
QPyNullVariant.__eq__ = MethodType(__eq__, None, QPyNullVariant)
QPyNullVariant.__ne__ = MethodType(__ne__, None, QPyNullVariant)
QPyNullVariant.__hash__ = MethodType(__hash__, None, QPyNullVariant)
# define a dummy QPyNullVariant instance NULL in qgis.core
# this is mainly used to compare against

View File

@ -64,7 +64,7 @@ class ProviderTestCase(object):
def testUnique(self):
assert set(self.provider.uniqueValues(1)) == set([-200, 100, 200, 300, 400])
# assert set([u'Apple', u'Honey', u'Orange', u'Pear', NULL]) == set(self.provider.uniqueValues(2)), 'Got {}'.format(set(self.provider.uniqueValues(2)))
assert set([u'Apple', u'Honey', u'Orange', u'Pear', NULL]) == set(self.provider.uniqueValues(2)), 'Got {}'.format(set(self.provider.uniqueValues(2)))
def testFeatureCount(self):
assert self.provider.featureCount() == 5