def test_create_connection(self): c = create_connection(self.r, self.foo, self.bar) assert c.relationship_name == self.r.name assert c.relationship is self.r assert c.from_object == self.foo assert c.to_object == self.bar assert re.match(r'user_follow \(user:\d+ --> user:\d+\)', str(c))
def test_connections_to_object(self): tpl = """{%% spaceless %%} {%% load connections %%} {%% connections_to_object %s foo as connections %%} {%% for c in connections %%}{{ c.from_object.username }}, {%% endfor %%} {%% endspaceless %%}""" create_connection(self.r, self.bar, self.foo) create_connection(self.r, self.jaz, self.foo) assert 'bar, jaz,' == Template(tpl % "'user_follow'").render(Context({ 'foo': self.foo, })) assert 'bar, jaz,' == Template(tpl % "rel").render(Context({ 'rel': self.r, 'foo': self.foo, }))
def test_connection_exists(self): tpl = """{%% spaceless %%} {%% load connections %%} {%% connection_exists %s foo bar as has_connection %%} {{ has_connection|yesno:'True,False' }} {%% endspaceless %%}""" create_connection(self.r, self.foo, self.bar) assert 'True' == Template(tpl % "'user_follow'").render(Context({ 'foo': self.foo, 'bar': self.bar, })) assert 'True' == Template(tpl % "rel").render(Context({ 'rel': self.r, 'foo': self.foo, 'bar': self.bar, }))
def test_get_connection_distance(self): tpl = """{%% spaceless %%} {%% load connections %%} {%% get_connection_distance %s foo bar as distance %%} {{ distance }} {%% endspaceless %%}""" create_connection(self.r, self.foo, self.bar) assert '1' == Template(tpl % "'user_follow'").render(Context({ 'foo': self.foo, 'bar': self.bar, })) assert '1' == Template(tpl % "rel").render(Context({ 'rel': self.r, 'foo': self.foo, 'bar': self.bar, }))
def test_connections_to_object(self): tpl = """{%% spaceless %%} {%% load connections %%} {%% connections_to_object %s foo as connections %%} {%% for c in connections %%}{{ c.from_object.username }}, {%% endfor %%} {%% endspaceless %%}""" create_connection(self.r, self.bar, self.foo) create_connection(self.r, self.jaz, self.foo) assert 'bar, jaz,' == Template(tpl % "'user_follow'").render( Context({ 'foo': self.foo, })) assert 'bar, jaz,' == Template(tpl % "rel").render( Context({ 'rel': self.r, 'foo': self.foo, }))
def test_get_connection_distance(self): tpl = """{%% spaceless %%} {%% load connections %%} {%% get_connection_distance %s foo bar as distance %%} {{ distance }} {%% endspaceless %%}""" create_connection(self.r, self.foo, self.bar) assert '1' == Template(tpl % "'user_follow'").render( Context({ 'foo': self.foo, 'bar': self.bar, })) assert '1' == Template(tpl % "rel").render( Context({ 'rel': self.r, 'foo': self.foo, 'bar': self.bar, }))
def test_connection_exists(self): tpl = """{%% spaceless %%} {%% load connections %%} {%% connection_exists %s foo bar as has_connection %%} {{ has_connection|yesno:'True,False' }} {%% endspaceless %%}""" create_connection(self.r, self.foo, self.bar) assert 'True' == Template(tpl % "'user_follow'").render( Context({ 'foo': self.foo, 'bar': self.bar, })) assert 'True' == Template(tpl % "rel").render( Context({ 'rel': self.r, 'foo': self.foo, 'bar': self.bar, }))
def test_distance_between(self): create_connection(self.r, self.foo, self.foo) create_connection(self.r, self.foo, self.bar) create_connection(self.r, self.bar, self.jaz) assert self.r.distance_between(self.foo, self.foo) == 0 assert self.r.distance_between(self.foo, self.bar) == 1 assert self.r.distance_between(self.foo, self.jaz) == 2 assert self.r.distance_between(self.bar, self.jaz) == 1 assert self.r.distance_between(self.bar, self.foo) is None assert self.r.distance_between(self.jaz, self.foo) is None assert self.r.distance_between(self.jaz, self.bar) is None
def test_connection_removed(): foo = User.objects.create_user(username='******') bar = User.objects.create_user(username='******') r = define_relationship('rel', User, User) def handler(signal, sender, connection, **kwargs): assert sender is r assert connection.relationship is r assert connection.from_object == foo assert connection.to_object == bar assert kwargs == {} try: connection_removed.connect(handler, sender=r) c = create_connection(r, foo, bar) c.delete() finally: connection_removed.disconnect(handler) foo.delete() bar.delete()
def test_get_connection(self): c = create_connection(self.r, self.foo, self.bar) assert get_connection(self.r, self.foo, self.bar) == c assert get_connection(self.r, self.foo, self.jaz) is None
def test_connected_to_object_ids(self): create_connection(self.r, self.bar, self.foo) create_connection(self.r, self.jaz, self.foo) assert set(self.r.connected_to_object_ids(self.foo)) == set( [self.bar.pk, self.jaz.pk])
def test_connected_to_objects(self): create_connection(self.r, self.bar, self.foo) create_connection(self.r, self.jaz, self.foo) assert set(connected_to_objects(self.r, self.foo)) == set([self.bar, self.jaz])
def test_connections_to_object(self): c1 = create_connection(self.r, self.bar, self.foo) c2 = create_connection(self.r, self.jaz, self.foo) assert set(connections_to_object(self.r, self.foo)) == set([c1, c2])
def test_connection_exists(self): assert not connection_exists(self.r, self.foo, self.bar) create_connection(self.r, self.foo, self.bar) assert connection_exists(self.r, self.foo, self.bar)
def test_connected_to_object_ids(self): create_connection(self.r, self.bar, self.foo) create_connection(self.r, self.jaz, self.foo) assert set(self.r.connected_to_object_ids(self.foo)) == set([self.bar.pk, self.jaz.pk])