From f55d2b6c9dfd753090d6ce8933e06b78a018137f Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Tue, 17 Apr 2018 23:09:38 +0200
Subject: [PATCH] Updated tests

---
 api/tests/federation/test_serializers.py | 13 ++++++++++---
 api/tests/federation/test_views.py       |  2 +-
 changes/changelog.d/federation-1.bugfix  |  1 +
 3 files changed, 12 insertions(+), 4 deletions(-)
 create mode 100644 changes/changelog.d/federation-1.bugfix

diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py
index 6d33a529de..85208fa490 100644
--- a/api/tests/federation/test_serializers.py
+++ b/api/tests/federation/test_serializers.py
@@ -431,8 +431,14 @@ def test_collection_page_serializer_validation():
 
 
 def test_collection_page_serializer_can_validate_child():
-    base = 'https://test.federation/test'
     data = {
+        'type': 'CollectionPage',
+        'id': 'https://test.page?page=2',
+        'actor': 'https://test.actor',
+        'first': 'https://test.page?page=1',
+        'last': 'https://test.page?page=3',
+        'partOf': 'https://test.page',
+        'totalItems': 1,
         'items': [{'in': 'valid'}],
     }
 
@@ -441,8 +447,9 @@ def test_collection_page_serializer_can_validate_child():
         context={'item_serializer': serializers.AudioSerializer}
     )
 
-    assert serializer.is_valid() is False
-    assert 'items' in serializer.errors
+    # child are validated but not included in data if not valid
+    assert serializer.is_valid(raise_exception=True) is True
+    assert len(serializer.validated_data['items']) == 0
 
 
 def test_collection_page_serializer(factories):
diff --git a/api/tests/federation/test_views.py b/api/tests/federation/test_views.py
index 8c5235b8bb..ae94bcdc02 100644
--- a/api/tests/federation/test_views.py
+++ b/api/tests/federation/test_views.py
@@ -43,7 +43,7 @@ def test_instance_endpoints_405_if_federation_disabled(
 
 
 def test_wellknown_webfinger_validates_resource(
-    db, api_client, settings, mocker):
+        db, api_client, settings, mocker):
     clean = mocker.spy(webfinger, 'clean_resource')
     url = reverse('federation:well-known-webfinger')
     response = api_client.get(url, data={'resource': 'something'})
diff --git a/changes/changelog.d/federation-1.bugfix b/changes/changelog.d/federation-1.bugfix
new file mode 100644
index 0000000000..371208e0e0
--- /dev/null
+++ b/changes/changelog.d/federation-1.bugfix
@@ -0,0 +1 @@
+Fixed broken permission check on library scanning and too aggressive page validation
-- 
GitLab