Python os.environ.items() Examples
The following are 30
code examples of os.environ.items().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os.environ
, or try the search function
.
Example #1
Source File: telemetry_batch_view.py From telemetry-airflow with Mozilla Public License 2.0 | 6 votes |
def submit_job(): opts = [ ["--{}".format(key[4:].replace("_", "-")), value] for key, value in environ.items() if key.startswith("TBV_") and key != "TBV_CLASS" ] command = [ "spark-submit", "--master", "yarn", "--deploy-mode", "client", "--class", environ["TBV_CLASS"], artifact_file, ] + [v for opt in opts for v in opt if v] call_exit_errors(command)
Example #2
Source File: mpi.py From pylada-light with GNU General Public License v3.0 | 6 votes |
def cleanup(self): """ Removes temporary file. """ from os.path import exists from os import remove # return nodes to parent. parent = None if self.parent is None else self.parent() if parent is not None: for key, value in self.machines.items(): if key in parent.machines: parent.machines[key] += value else: parent.machines[key] = value parent['n'] += self['n'] self.parent = None self.machines = {} self['n'] = 0 # remove nodefile, if it exists. nodefile, self._nodefile = self._nodefile, None if nodefile is not None and exists(nodefile): try: remove(nodefile) except: pass
Example #3
Source File: dumper.py From dump-env with MIT License | 6 votes |
def _preload_existing_vars(prefix: str) -> Store: """Preloads env vars from environ with the given prefix.""" if not prefix: # If prefix is empty just return all the env variables. return environ prefixed = {} # Prefix is not empty, do the search and replacement: for env_name, env_value in environ.items(): if not env_name.startswith(prefix): # Skip vars with no prefix. continue prefixed[env_name.replace(prefix, '', 1)] = env_value return prefixed
Example #4
Source File: test_wsgiref.py From medicare-demo with Apache License 2.0 | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if not empty.has_key(k): self.assertEqual(env[k],v) for k,v in empty.items(): self.failUnless(env.has_key(k))
Example #5
Source File: mpi.py From pylada-light with GNU General Public License v3.0 | 5 votes |
def acquire(self, other, n=None): """ Acquires the processes from another communicator. Use at your risk... Family lines could become tangled, eg to which communicator will the processes return when self is destroyed? In practice, it will return to the parent of self. Is that what you want? The processes in other are acquired by self. If n is not None, only n processes are acquired, up to the maximum number of processes in other. If n is None, then all processes are acquired. As always, processes are exclusive owned exclusively. Processes acquired by self are no longuer in other. """ if self._nodefile is not None or other._nodefile is not None: raise NodeFileExists("Comm already used in other process.") if n is not None: comm = other.lend(n) self.acquire(comm) return for key, value in other.machines.items(): if key in self.machines: self.machines[key] += value else: self.machines[key] = value self['n'] += other['n'] other.machines = {} other['n'] = 0 other.parent = None other.cleanup()
Example #6
Source File: mpi.py From pylada-light with GNU General Public License v3.0 | 5 votes |
def nodefile(self, dir=None): """ Returns name of temporary nodefile. This file should be cleaned up once the mpi process is finished by calling :py:meth:`~Communicator.cleanup`. It is an error to call this function without first cleaning up. Since only one mpi process should be attached to a communicator, this makes sense. """ from tempfile import NamedTemporaryFile from ..misc import RelativePath from ..process import logger if self._nodefile is not None: logger.debug('process/mpi.py: old nodefile: %s' % self._nodefile) raise NodeFileExists("Please call cleanup first. nodefile: \"%s\"" % (self._nodefile, )) if self['n'] == 0: raise MPISizeError("No processes in this communicator.") with NamedTemporaryFile( dir=RelativePath(dir).path, delete=False, prefix='pylada_comm') as file: logger.debug('process/mpi.py: new nodefile: %s' % file.name) for machine, slots in self.machines.items(): if slots == 0: continue ##file.write('{0} slots={1}\n'.format(machine, slots)) file.write(machine) file.write('\n') logger.debug('machine: %s slots: %s' % (machine, slots)) self._nodefile = file.name return self._nodefile
Example #7
Source File: test_wsgiref.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not next(it) == item: raise AssertionError try: next(it) except StopIteration: pass else: raise AssertionError("Too many items from .__next__()", it)
Example #8
Source File: test_wsgiref.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers()), 0) self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertIsNot(Headers(test).items(), test) # must be copy! h = Headers() del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #9
Source File: test_wsgiref.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if k not in empty: self.assertEqual(env[k],v) for k,v in empty.items(): self.assertIn(k, env)
Example #10
Source File: test_wsgiref.py From medicare-demo with Apache License 2.0 | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not it.next()==item: raise AssertionError try: it.next() except StopIteration: pass else: raise AssertionError("Too many items from .next()",it)
Example #11
Source File: test_wsgiref.py From medicare-demo with Apache License 2.0 | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.failIf(Headers(test).items() is test) # must be copy! h=Headers([]) del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.has_key, h.__contains__, h.get, h.get_all, h.__getitem__: self.failUnless(m('foo')) self.failUnless(m('Foo')) self.failUnless(m('FOO')) self.failIf(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #12
Source File: test_wsgiref.py From BinderFilter with MIT License | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertFalse(Headers(test).items() is test) # must be copy! h=Headers([]) del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.has_key, h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #13
Source File: test_wsgiref.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not it.next()==item: raise AssertionError try: it.next() except StopIteration: pass else: raise AssertionError("Too many items from .next()",it)
Example #14
Source File: test_wsgiref.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertFalse(Headers(test).items() is test) # must be copy! h=Headers([]) del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.has_key, h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #15
Source File: test_wsgiref.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if k not in empty: self.assertEqual(env[k],v) for k,v in empty.items(): self.assertIn(k, env)
Example #16
Source File: environment.py From django-bananas with MIT License | 5 votes |
def get_settings(): """ Get and parse prefixed django settings from env. TODO: Implement support for complex settings DATABASES = {} CACHES = {} INSTALLED_APPS -> EXCLUDE_APPS ? :return dict: """ settings = {} prefix = environ.get("DJANGO_SETTINGS_PREFIX", "DJANGO_") for key, value in environ.items(): _, _, key = key.partition(prefix) if key: if key in UNSUPPORTED_ENV_SETTINGS: raise ValueError( 'Django setting "{}" can not be ' "configured through environment.".format(key) ) default_value = getattr(global_settings, key, UNDEFINED) if default_value is not UNDEFINED: if default_value is None and key in SETTINGS_TYPES.keys(): # Handle typed django settings defaulting to None parse = get_parser(SETTINGS_TYPES[key]) else: # Determine parser by django setting type parse = get_parser(type(default_value)) value = parse(value) settings[key] = value return settings
Example #17
Source File: test_wsgiref.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not it.next()==item: raise AssertionError try: it.next() except StopIteration: pass else: raise AssertionError("Too many items from .next()",it)
Example #18
Source File: test_wsgiref.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertFalse(Headers(test).items() is test) # must be copy! h=Headers([]) del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.has_key, h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #19
Source File: test_wsgiref.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if k not in empty: self.assertEqual(env[k],v) for k,v in empty.items(): self.assertIn(k, env)
Example #20
Source File: test_wsgiref.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if k not in empty: self.assertEqual(env[k],v) for k,v in empty.items(): self.assertIn(k, env)
Example #21
Source File: test_wsgiref.py From BinderFilter with MIT License | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not it.next()==item: raise AssertionError try: it.next() except StopIteration: pass else: raise AssertionError("Too many items from .next()",it)
Example #22
Source File: test_wsgiref.py From BinderFilter with MIT License | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if k not in empty: self.assertEqual(env[k],v) for k,v in empty.items(): self.assertIn(k, env)
Example #23
Source File: test_wsgiref.py From oss-ftp with MIT License | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not it.next()==item: raise AssertionError try: it.next() except StopIteration: pass else: raise AssertionError("Too many items from .next()",it)
Example #24
Source File: test_wsgiref.py From oss-ftp with MIT License | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertIsNot(Headers(test).items(), test) # must be copy! h=Headers([]) del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.has_key, h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #25
Source File: test_wsgiref.py From oss-ftp with MIT License | 5 votes |
def checkOSEnviron(self,handler): empty = {}; setup_testing_defaults(empty) env = handler.environ from os import environ for k,v in environ.items(): if k not in empty: self.assertEqual(env[k],v) for k,v in empty.items(): self.assertIn(k, env)
Example #26
Source File: envhttp.py From flocker with Apache License 2.0 | 5 votes |
def do_GET(s): s.send_response(200) s.send_header("content-type", "text/json") s.end_headers() s.wfile.write(dumps(environ.items())) s.wfile.close()
Example #27
Source File: test_wsgiref.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not next(it) == item: raise AssertionError try: next(it) except StopIteration: pass else: raise AssertionError("Too many items from .__next__()", it)
Example #28
Source File: test_wsgiref.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers()), 0) self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertIsNot(Headers(test).items(), test) # must be copy! h = Headers() del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")
Example #29
Source File: test_wsgiref.py From ironpython3 with Apache License 2.0 | 5 votes |
def compare_generic_iter(make_it,match): """Utility to compare a generic 2.1/2.2+ iterator with an iterable If running under Python 2.2+, this tests the iterator using iter()/next(), as well as __getitem__. 'make_it' must be a function returning a fresh iterator to be tested (since this may test the iterator twice).""" it = make_it() n = 0 for item in match: if not it[n]==item: raise AssertionError n+=1 try: it[n] except IndexError: pass else: raise AssertionError("Too many items from __getitem__",it) try: iter, StopIteration except NameError: pass else: # Only test iter mode under 2.2+ it = make_it() if not iter(it) is it: raise AssertionError for item in match: if not next(it) == item: raise AssertionError try: next(it) except StopIteration: pass else: raise AssertionError("Too many items from .__next__()", it)
Example #30
Source File: test_wsgiref.py From ironpython3 with Apache License 2.0 | 5 votes |
def testMappingInterface(self): test = [('x','y')] self.assertEqual(len(Headers([])),0) self.assertEqual(len(Headers(test[:])),1) self.assertEqual(Headers(test[:]).keys(), ['x']) self.assertEqual(Headers(test[:]).values(), ['y']) self.assertEqual(Headers(test[:]).items(), test) self.assertIsNot(Headers(test).items(), test) # must be copy! h=Headers([]) del h['foo'] # should not raise an error h['Foo'] = 'bar' for m in h.__contains__, h.get, h.get_all, h.__getitem__: self.assertTrue(m('foo')) self.assertTrue(m('Foo')) self.assertTrue(m('FOO')) self.assertFalse(m('bar')) self.assertEqual(h['foo'],'bar') h['foo'] = 'baz' self.assertEqual(h['FOO'],'baz') self.assertEqual(h.get_all('foo'),['baz']) self.assertEqual(h.get("foo","whee"), "baz") self.assertEqual(h.get("zoo","whee"), "whee") self.assertEqual(h.setdefault("foo","whee"), "baz") self.assertEqual(h.setdefault("zoo","whee"), "whee") self.assertEqual(h["foo"],"baz") self.assertEqual(h["zoo"],"whee")