From 22e8fcbc35453cd7139c32e3fdfbf3c0a831374f Mon Sep 17 00:00:00 2001
From: Nicolas Joyard <joyard.nicolas@gmail.com>
Date: Tue, 12 Jul 2016 07:42:12 +0200
Subject: [PATCH] Francedata: fix social website import

---
 .../francedata/import_representatives.py      |  9 +++-
 .../tests/representatives_expected.json       | 42 ++++++-------------
 2 files changed, 20 insertions(+), 31 deletions(-)

diff --git a/representatives/contrib/francedata/import_representatives.py b/representatives/contrib/francedata/import_representatives.py
index 5c6b066..2fb32ce 100644
--- a/representatives/contrib/francedata/import_representatives.py
+++ b/representatives/contrib/francedata/import_representatives.py
@@ -1,6 +1,7 @@
 # coding: utf-8
 
 import logging
+import re
 import sys
 from datetime import datetime
 
@@ -247,7 +248,13 @@ class FranceDataImporter(GenericImporter):
         # Websites
         websites = rep_json.get('sites_web', [])
         for site in websites:
-            if not site['site'].startswith('http://twitter.com/'):
+            if re.search(r'facebook\.com', site['site']):
+                self.touch_model(model=WebSite,
+                                 url=site['site'],
+                                 kind='facebook',
+                                 representative=representative
+                                 )
+            elif not re.search(r'twitter\.com', site['site']):
                 self.touch_model(model=WebSite,
                                  url=site['site'],
                                  representative=representative
diff --git a/representatives/contrib/francedata/tests/representatives_expected.json b/representatives/contrib/francedata/tests/representatives_expected.json
index 2994db1..e006bc0 100644
--- a/representatives/contrib/francedata/tests/representatives_expected.json
+++ b/representatives/contrib/francedata/tests/representatives_expected.json
@@ -1,15 +1,15 @@
 [
 {
     "fields": {
-        "photo": "http://www.nosdeputes.fr/depute/photo/bernard-roman",
+        "last_name": "Roman",
         "gender": 2,
         "remote_id": "http://www2.assemblee-nationale.fr/deputes/fiche/OMC_PA2611",
+        "first_name": "Bernard",
         "cv": "",
         "active": true,
         "birth_place": "Lille (Nord)",
-        "first_name": "Bernard",
-        "last_name": "Roman",
         "full_name": "Bernard Roman",
+        "photo": "http://www.nosdeputes.fr/depute/photo/bernard-roman",
         "birth_date": "1952-07-15",
         "slug": "bernard-roman"
     },
@@ -18,15 +18,15 @@
 },
 {
     "fields": {
-        "photo": "http://www.nossenateurs.fr/senateur/photo/david-assouline",
+        "last_name": "Assouline",
         "gender": 2,
         "remote_id": "http://www.senat.fr/senateur/assouline_david04059m.html",
+        "first_name": "David",
         "cv": "",
         "active": true,
         "birth_place": "non disponible",
-        "first_name": "David",
-        "last_name": "Assouline",
         "full_name": "David Assouline",
+        "photo": "http://www.nossenateurs.fr/senateur/photo/david-assouline",
         "birth_date": "1959-06-16",
         "slug": "david-assouline"
     },
@@ -69,15 +69,6 @@
     "model": "representatives.website",
     "pk": 1
 },
-{
-    "fields": {
-        "url": "https://twitter.com/bernardroman59",
-        "representative": 1,
-        "kind": ""
-    },
-    "model": "representatives.website",
-    "pk": 2
-},
 {
     "fields": {
         "url": "http://twitter.com/bernardroman59",
@@ -85,7 +76,7 @@
         "kind": "twitter"
     },
     "model": "representatives.website",
-    "pk": 3
+    "pk": 2
 },
 {
     "fields": {
@@ -94,25 +85,16 @@
         "kind": ""
     },
     "model": "representatives.website",
-    "pk": 4
-},
-{
-    "fields": {
-        "url": "https://twitter.com/dassouline",
-        "representative": 2,
-        "kind": ""
-    },
-    "model": "representatives.website",
-    "pk": 5
+    "pk": 3
 },
 {
     "fields": {
         "url": "https://www.facebook.com/DavAssouline",
         "representative": 2,
-        "kind": ""
+        "kind": "facebook"
     },
     "model": "representatives.website",
-    "pk": 6
+    "pk": 4
 },
 {
     "fields": {
@@ -121,7 +103,7 @@
         "kind": ""
     },
     "model": "representatives.website",
-    "pk": 7
+    "pk": 5
 },
 {
     "fields": {
@@ -130,7 +112,7 @@
         "kind": "twitter"
     },
     "model": "representatives.website",
-    "pk": 8
+    "pk": 6
 },
 {
     "fields": {
-- 
GitLab