From 1f1bf8b8c858e41bdc74ca53b1659d9f4259fa75 Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Sat, 27 Mar 2021 12:02:10 +0100
Subject: [PATCH] added /poller/eumetsat-multicast test

---
 test/test_general_poller_routes.py | 35 ++++++++++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/test/test_general_poller_routes.py b/test/test_general_poller_routes.py
index f3974eec..31310282 100644
--- a/test/test_general_poller_routes.py
+++ b/test/test_general_poller_routes.py
@@ -1,6 +1,6 @@
 import json
 import jsonschema
-from inventory_provider.routes.poller import INTERFACE_LIST_SCHEMA
+from inventory_provider.routes import poller
 
 DEFAULT_REQUEST_HEADERS = {
     "Content-type": "application/json",
@@ -15,7 +15,38 @@ def test_get_all_interfaces(client):
     assert rv.status_code == 200
     assert rv.is_json
     response_data = json.loads(rv.data.decode('utf-8'))
-    jsonschema.validate(response_data, INTERFACE_LIST_SCHEMA)
+    jsonschema.validate(response_data, poller.INTERFACE_LIST_SCHEMA)
     response_routers = {ifc['router'] for ifc in response_data}
     assert len(response_routers) > 1, \
         'there should data from be lots of routers'
+
+
+def test_all_router_interface_speeds(client):
+    rv = client.post(
+        f'/poller/speeds',
+        headers=DEFAULT_REQUEST_HEADERS)
+
+    assert rv.status_code == 200
+    response = json.loads(rv.data.decode("utf-8"))
+    jsonschema.validate(response, poller.INTERFACE_SPEED_LIST_SCHEMA)
+    assert response  # at least shouldn't be empty
+    response_routers = {ifc['router'] for ifc in response}
+    assert len(response_routers) > 1, \
+        'there should data from be lots of routers'
+
+
+def test_eumetsat_multicast(mocker, client):
+
+    # routers don't have snmp acl's for us
+    mocker.patch('inventory_provider.juniper.snmp_community_string') \
+            .return_value = 'blah'
+
+    rv = client.get(
+        '/poller/eumetsat-multicast',
+        headers=DEFAULT_REQUEST_HEADERS)
+    assert rv.status_code == 200
+    assert rv.is_json
+    response_data = json.loads(rv.data.decode('utf-8'))
+    jsonschema.validate(
+        response_data, poller.MULTICAST_SUBSCRIPTION_LIST_SCHEMA)
+    assert response_data, "the subscription list shouldn't be empty"
-- 
GitLab