text: import json
  from urllib.parse import urlencode
  
  from .oauth import OAuth1Test
  
  
  class XingOAuth1Test(OAuth1Test):
      backend_path = 'social_core.backends.xing.XingOAuth'
      user_data_url = 'https://api.xing.com/v1/users/me.json'
      expected_username = 'FooBar'
      access_token_body = urlencode({
          'access_token': 'foobar',
          'token_type': 'bearer',
          'user_id': '123456_abcdef',
          'oauth_token_secret': 'foobar-secret',
          'oauth_token': 'foobar',
      })
      request_token_body = urlencode({
          'oauth_token_secret': 'foobar-secret',
          'oauth_token': 'foobar',
          'oauth_callback_confirmed': 'true'
      })
      user_data_body = json.dumps({
          'users': [{
              'id': '123456_abcdef',
              'first_name': 'Foo',
              'last_name': 'Bar',
              'display_name': 'Foo Bar',
              'page_name': 'Foo_Bar',
              'permalink': 'https://www.xing.com/profile/Foo_Bar',
              'gender': 'm',
              'birth_date': {
                  'day': 12,
                  'month': 8,
                  'year': 1963
              },
              'active_email': 'foo@bar.com',
              'time_zone': {
                  'name': 'Europe/Copenhagen',
                  'utc_offset': 2.0
              },
              'premium_services': ['SEARCH', 'PRIVATEMESSAGES'],
              'badges': ['PREMIUM', 'MODERATOR'],
              'wants': 'Nothing',
              'haves': 'Skills',
              'interests': 'Foo Foo',
              'organisation_member': 'ACM, GI',
              'languages': {
                  'de': 'NATIVE',
                  'en': 'FLUENT',
                  'fr': None,
                  'zh': 'BASIC'
              },
              'private_address': {
                  'city': 'Foo',
                  'country': 'DE',
                  'zip_code': '20357',
                  'street': 'Bar',
                  'phone': '12|34|1234560',
                  'fax': '||',
                  'province': 'Foo',
                  'email': 'foo@bar.com',
                  'mobile_phone': '12|3456|1234567'
              },
              'business_address': {
                  'city': 'Foo',
                  'country': 'DE',
                  'zip_code': '20357',
                  'street': 'Bar',
                  'phone': '12|34|1234569',
                  'fax': '12|34|1234561',
                  'province': 'Foo',
                  'email': 'foo@bar.com',
                  'mobile_phone': '12|345|12345678'
              },
              'web_profiles': {
                  'qype': ['http://qype.de/users/foo'],
                  'google_plus': ['http://plus.google.com/foo'],
                  'blog': ['http://blog.example.org'],
                  'homepage': ['http://example.org', 'http://other-example.org']
              },
              'instant_messaging_accounts': {
                  'skype': 'foobar',
                  'googletalk': 'foobar'
              },
              'professional_experience': {
                  'primary_company': {
                      'name': 'XING AG',
                      'title': 'Softwareentwickler',
                      'company_size': '201-500',
                      'tag': None,
                      'url': 'http://www.xing.com',
                      'career_level': 'PROFESSIONAL_EXPERIENCED',
                      'begin_date': '2010-01',
                      'description': None,
                      'end_date': None,
                      'industry': 'AEROSPACE'
                  },
                  'non_primary_companies': [{
                      'name': 'Ninja Ltd.',
                      'title': 'DevOps',
                      'company_size': None,
                      'tag': 'NINJA',
                      'url': 'http://www.ninja-ltd.co.uk',
                      'career_level': None,
                      'begin_date': '2009-04',
                      'description': None,
                      'end_date': '2010-07',
                      'industry': 'ALTERNATIVE_MEDICINE'
                  }, {
                      'name': None,
                      'title': 'Wiss. Mitarbeiter',
                      'company_size': None,
                      'tag': 'OFFIS',
                      'url': 'http://www.uni.de',
                      'career_level': None,
                      'begin_date': '2007',
                      'description': None,
                      'end_date': '2008',
                      'industry': 'APPAREL_AND_FASHION'
                  }, {
                      'name': None,
                      'title': 'TEST NINJA',
                      'company_size': '201-500',
                      'tag': 'TESTCOMPANY',
                      'url': None,
                      'career_level': 'ENTRY_LEVEL',
                      'begin_date': '1998-12',
                      'description': None,
                      'end_date': '1999-05',
                      'industry': 'ARTS_AND_CRAFTS'
                  }],
                  'awards': [{
                      'name': 'Awesome Dude Of The Year',
                      'date_awarded': 2007,
                      'url': None
                  }]
              },
              'educational_background': {
                  'schools': [{
                      'name': 'Foo University',
                      'degree': 'MSc CE/CS',
                      'notes': None,
                      'subject': None,
                      'begin_date': '1998-08',
                      'end_date': '2005-02'
                  }],
                  'qualifications': ['TOEFLS', 'PADI AOWD']
              },
              'photo_urls': {
                  'large': 'http://www.xing.com/img/users/e/3/d/'
                           'f94ef165a.123456,1.140x185.jpg',
                  'mini_thumb': 'http://www.xing.com/img/users/e/3/d/'
                                'f94ef165a.123456,1.18x24.jpg',
                  'thumb': 'http://www.xing.com/img/users/e/3/d/'
                           'f94ef165a.123456,1.30x40.jpg',
                  'medium_thumb': 'http://www.xing.com/img/users/e/3/d/'
                                  'f94ef165a.123456,1.57x75.jpg',
                  'maxi_thumb': 'http://www.xing.com/img/users/e/3/d/'
                                'f94ef165a.123456,1.70x93.jpg'
              }
          }]
      })
  
      def test_login(self):
          self.do_login()
  
      def test_partial_pipeline(self):
          self.do_partial_pipeline()
  