def test_update_using_another_norm_dict(self): nd = NormalizedDict({"a": 1, "b": 1}) nd.update(NormalizedDict({"B": 2, "C": 2})) for c in "bc": assert_equals(nd[c], 2) assert_equals(nd[c.upper()], 2) assert_true("b" in nd.keys()) assert_true("B" not in nd.keys()) assert_true("c" not in nd.keys()) assert_true("C" in nd.keys())
def test_update_using_another_norm_dict(self): nd = NormalizedDict({'a': 1, 'b': 1}) nd.update(NormalizedDict({'B': 2, 'C': 2})) for c in 'bc': assert_equals(nd[c], 2) assert_equals(nd[c.upper()], 2) assert_true('b' in nd.keys()) assert_true('B' not in nd.keys()) assert_true('c' not in nd.keys()) assert_true('C' in nd.keys())
def test_update(self): nd = NormalizedDict({"a": 1, "b": 1, "c": 1}) nd.update({"b": 2, "C": 2, "D": 2}) for c in "bcd": assert_equals(nd[c], 2) assert_equals(nd[c.upper()], 2) assert_true("b" in nd.keys()) assert_true("c" in nd.keys()) assert_true("C" not in nd.keys()) assert_true("d" not in nd.keys()) assert_true("D" in nd.keys())
def test_update(self): nd = NormalizedDict({'a': 1, 'b': 1, 'c': 1}) nd.update({'b': 2, 'C': 2, 'D': 2}) for c in 'bcd': assert_equals(nd[c], 2) assert_equals(nd[c.upper()], 2) assert_true('b' in nd.keys()) assert_true('c' in nd.keys()) assert_true('C' not in nd.keys()) assert_true('d' not in nd.keys()) assert_true('D' in nd.keys())
def test_iterkeys_and_keys(self): nd = NormalizedDict({'A': 1, 'b': 3, 'C': 2}) iterator = nd.iterkeys() assert_false(isinstance(iterator, list)) assert_equal(list(iterator), ['A', 'b', 'C']) assert_equal(list(iterator), []) assert_equal(list(nd.iterkeys()), nd.keys())
def test_iterkeys_and_keys(self): nd = NormalizedDict({'A': 1, 'b': 3, 'C': 2}) iterator = nd.iterkeys() assert_false(isinstance(iterator, list)) assert_equals(list(iterator), ['A', 'b', 'C']) assert_equals(list(iterator), []) assert_equals(list(nd.iterkeys()), nd.keys())
def test_keys_values_and_items_are_returned_in_same_order(self): nd = NormalizedDict() for i, c in enumerate('abcdefghijklmnopqrstuvwxyz0123456789!"#%&/()=?'): nd[c.upper()] = i nd[c+str(i)] = 1 assert_equals(nd.items(), zip(nd.keys(), nd.values())) assert_equals(list(nd.iteritems()), zip(nd.iterkeys(), nd.itervalues()))
def test_iterkeys_and_keys(self): nd = NormalizedDict({"A": 1, "b": 3, "C": 2}) iterator = nd.iterkeys() assert_false(isinstance(iterator, list)) assert_equals(list(iterator), ["A", "b", "C"]) assert_equals(list(iterator), []) assert_equals(list(nd.iterkeys()), nd.keys())
def test_popitem(self): items = [(str(i), i) for i in range(9)] nd = NormalizedDict(items) for i in range(9): assert_equals(nd.popitem(), items[i]) assert_equals(nd.data, {}) assert_equals(nd.keys(), [])
def test_popitem(self): items = [(str(i), i) for i in range(9)] nd = NormalizedDict(items) for i in range(9): assert_equal(nd.popitem(), items[i]) assert_equal(nd._data, {}) assert_equal(list(nd.keys()), [])
def test_update_with_kwargs(self): nd = NormalizedDict({'a': 0, 'c': 1}) nd.update({'b': 2, 'c': 3}, b=4, d=5) for k, v in [('a', 0), ('b', 4), ('c', 3), ('d', 5)]: assert_equals(nd[k], v) assert_equals(nd[k.upper()], v) assert_true(k in nd) assert_true(k.upper() in nd) assert_true(k in nd.keys())
def test_update_with_kwargs(self): nd = NormalizedDict({'a': 0, 'c': 1}) nd.update({'b': 2, 'c': 3}, b=4, d=5) for k, v in [('a', 0), ('b', 4), ('c', 3), ('d', 5)]: assert_equal(nd[k], v) assert_equal(nd[k.upper()], v) assert_true(k in nd) assert_true(k.upper() in nd) assert_true(k in nd.keys())
def test_update_with_kwargs(self): nd = NormalizedDict({"a": 0, "c": 1}) nd.update({"b": 2, "c": 3}, b=4, d=5) for k, v in [("a", 0), ("b", 4), ("c", 3), ("d", 5)]: assert_equals(nd[k], v) assert_equals(nd[k.upper()], v) assert_true(k in nd) assert_true(k.upper() in nd) assert_true(k in nd.keys())
def test_pop(self): nd = NormalizedDict({'A': 1, 'b': 2}) assert_equal(nd.pop('A'), 1) assert_equal(nd.pop('B'), 2) assert_equal(nd._data, {}) assert_equal(list(nd.keys()), [])
def test_deleting_items(self): nd = NormalizedDict({'A': 1, 'b': 2}) del nd['A'] del nd['B'] assert_equal(nd._data, {}) assert_equal(list(nd.keys()), [])
def test_original_keys_are_preserved(self): nd = NormalizedDict({'low': 1, 'UP': 2}) nd['up'] = nd['Spa Ce'] = 3 assert_equal(list(nd.keys()), ['low', 'Spa Ce', 'UP']) assert_equal(list(nd.items()), [('low', 1), ('Spa Ce', 3), ('UP', 3)])
class Applications: _database = DataBasePaths(True).getConnectedFile() def __init__(self): self._apps = NormalizedDict() self._old_apps = NormalizedDict() for alias, url in self._get_aliases_and_urls_from_db(): self._old_apps[alias] = url def _get_aliases_and_urls_from_db(self): items = [] for connection in self._read_lines(): items.append(connection.split('\t')) return items def _read_lines(self): if os.path.exists(self._database): f = open(self._database, 'rb') data = f.read().splitlines() f.close() return data return [] def add(self, alias, app): self._apps[alias] = app self._old_apps[alias] = app.rmi_url self._store() def _store(self): data = [ '%s\t%s' % (alias, url) for alias, url in self._old_apps.items() ] self._write('\n'.join(data)) print "*TRACE* Stored to connected applications database: ", data def _write(self, data): f = open(self._database, 'wb') f.write(data) f.close() def has_connected_to_application(self, alias): return self._apps.has_key(alias) def get_application(self, alias): return self._apps[alias] def get_applications(self): return self._apps.values() def get_aliases(self): return self._apps.keys() def delete(self, alias): del (self._apps[normalize(alias)]) del (self._old_apps[normalize(alias)]) self._store() def delete_all_connected(self): for alias in self._apps.keys(): self.delete(alias) def get_alias_for(self, application): for alias, app in self._apps.items(): if app == application: return alias return None def get_url(self, alias): for name, url in self._get_aliases_and_urls_from_db(): if eq(name, alias): return url return None
def test_popping_items(self): nd = NormalizedDict({"A": 1, "b": 2}) assert_equals(nd.pop("A"), 1) assert_equals(nd.pop("B"), 2) assert_equals(nd.data, {}) assert_equals(nd.keys(), [])
def test_original_keys_are_preserved(self): nd = NormalizedDict({'low': 1, 'UP': 2}) nd['up'] = nd['Spa Ce'] = 3 assert_equals(nd.keys(), ['low', 'Spa Ce', 'UP']) assert_equals(nd.items(), [('low', 1), ('Spa Ce', 3), ('UP', 3)])
def test_popping_items(self): nd = NormalizedDict({'A': 1, 'b': 2}) assert_equals(nd.pop('A'), 1) assert_equals(nd.pop('B'), 2) assert_equals(nd.data, {}) assert_equals(nd.keys(), [])
def test_deleting_items(self): nd = NormalizedDict({'A': 1, 'b': 2}) del nd['A'] del nd['B'] assert_equals(nd.data, {}) assert_equals(nd.keys(), [])
def test_keys_are_sorted(self): nd = NormalizedDict((c, None) for c in "aBcDeFg123XyZ___") assert_equals(nd.keys(), list("123_aBcDeFgXyZ"))
def test_deleting_items(self): nd = NormalizedDict({"A": 1, "b": 2}) del nd["A"] del nd["B"] assert_equals(nd.data, {}) assert_equals(nd.keys(), [])
def test_pop(self): nd = NormalizedDict({'A': 1, 'b': 2}) assert_equals(nd.pop('A'), 1) assert_equals(nd.pop('B'), 2) assert_equals(nd.data, {}) assert_equals(nd.keys(), [])
def test_keys_are_sorted(self): nd = NormalizedDict((c, None) for c in 'aBcDeFg123XyZ___') assert_equal(list(nd.keys()), list('123_aBcDeFgXyZ'))
def test_keys_are_sorted(self): nd = NormalizedDict((c, None) for c in 'aBcDeFg123XyZ___') assert_equals(nd.keys(), list('123_aBcDeFgXyZ'))
class Applications: _database = DataBasePaths(True).getConnectedFile() def __init__(self): self._apps = NormalizedDict() self._old_apps = NormalizedDict() for alias, url in self._get_aliases_and_urls_from_db(): self._old_apps[alias] = url def _get_aliases_and_urls_from_db(self): items = [] for connection in self._read_lines(): items.append(connection.rsplit('\t', 1)) return items def _read_lines(self): if os.path.exists(self._database): f = open(self._database, 'rb') data = f.read().splitlines() f.close() return [line for line in data if self._is_valid_connection(line)] return [] def _is_valid_connection(self, line): return len(line.rsplit('\t', 1)) == 2 def add(self, alias, app): self._apps[alias] = app self._old_apps[alias] = app.rmi_url self._store() def _store(self): data = ['%s\t%s' % (alias, url) for alias, url in self._old_apps.items()] data_txt = '\n'.join(data) self._write(data_txt) print "*TRACE* Stored to connected applications database: \n%s" % data_txt def _write(self, data): f = open(self._database, 'wb') f.write(data) f.close() def has_connected_to_application(self, alias): return self._apps.has_key(alias) def get_application(self, alias): return self._apps[alias] def get_applications(self): return self._apps.values() def get_aliases(self): return self._apps.keys() def delete(self, alias): del(self._apps[normalize(alias)]) del(self._old_apps[normalize(alias)]) self._store() def delete_all_connected(self): for alias in self._apps.keys(): self.delete(alias) def get_alias_for(self, application): for alias, app in self._apps.items(): if app == application: return alias return None def get_url(self, alias): for name, url in self._get_aliases_and_urls_from_db(): if eq(name, alias): return url return None
def test_original_keys_are_preserved(self): nd = NormalizedDict({"low": 1, "UP": 2}) nd["up"] = nd["Spa Ce"] = 3 assert_equals(nd.keys(), ["low", "Spa Ce", "UP"]) assert_equals(nd.items(), [("low", 1), ("Spa Ce", 3), ("UP", 3)])