def test_create_bidirectional_vectors(self): """Test creating a bidirectional connection between nodes""" net = models.Network() self.db.add(net) node1 = models.Node(network=net) node2 = models.Node(network=net) vector1 = models.Vector(origin=node1, destination=node2) vector2 = models.Vector(origin=node2, destination=node1) self.add(node1, node2, vector1, vector2) assert vector1.origin_id == node1.id assert vector1.destination_id == node2.id assert vector2.origin_id == node2.id assert vector2.destination_id == node1.id assert node1.vectors(direction="incoming") == [vector2] assert node1.vectors(direction="outgoing") == [vector1] assert node2.vectors(direction="incoming") == [vector1] assert node2.vectors(direction="outgoing") == [vector2] assert node1.is_connected(direction="to", whom=node2) assert node1.is_connected(direction="from", whom=node2) assert node2.is_connected(direction="to", whom=node1) assert node2.is_connected(direction="from", whom=node1) assert len(node1.vectors(direction="incoming")) == 1 assert len(node2.vectors(direction="incoming")) == 1 assert len(node1.vectors(direction="outgoing")) == 1 assert len(node2.vectors(direction="outgoing")) == 1 assert len(vector1.transmissions()) == 0 assert len(vector2.transmissions()) == 0
def test_vector_repr(self): """Test the repr of a vector""" net = models.Network() self.db.add(net) node1 = models.Node(network=net) node2 = models.Node(network=net) vector1 = models.Vector(origin=node1, destination=node2) vector2 = models.Vector(origin=node2, destination=node1) self.add(node1, node2, vector1, vector2) assert (repr(vector1).split("-") == [ "Vector", str(node1.id), str(node2.id) ]) assert (repr(vector2).split("-") == [ "Vector", str(node2.id), str(node1.id) ])
def test_kill_vector(self): net = models.Network() self.db.add(net) node1 = models.Node(network=net) node2 = models.Node(network=net) vector = models.Vector(origin=node1, destination=node2) self.add(node1, node2, vector) assert vector.failed is False vector.fail() assert vector.failed is True