From 0df048ce165efc01561a4c452d0a9fe704e81eba Mon Sep 17 00:00:00 2001 From: Miguel Araujo Perez Date: Sun, 1 May 2011 14:15:11 +0200 Subject: [PATCH] Adding contrib app to the root level. Contains a tests directory with Selenium2 tests for django-social-auth contrib is the minimum viable app structure. DjangoTestSuiteRunner expects a file named tests or a module named tests. --- contrib/__init__.py | 0 contrib/models.py | 3 +++ contrib/tests/runtests.py | 21 +++++++++++++++++ contrib/tests/test_core.py | 43 ++++++++++++++++++++++++++++++++++ contrib/tests/test_settings.py | 19 +++++++++++++++ 5 files changed, 86 insertions(+) create mode 100644 contrib/__init__.py create mode 100644 contrib/models.py create mode 100755 contrib/tests/runtests.py create mode 100644 contrib/tests/test_core.py create mode 100644 contrib/tests/test_settings.py diff --git a/contrib/__init__.py b/contrib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/contrib/models.py b/contrib/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/contrib/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/contrib/tests/runtests.py b/contrib/tests/runtests.py new file mode 100755 index 0000000..4ac0f81 --- /dev/null +++ b/contrib/tests/runtests.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +import os, sys + +os.environ['DJANGO_SETTINGS_MODULE'] = 'test_settings' +parent = os.path.dirname(os.path.dirname(os.path.dirname( + os.path.abspath(__file__)))) + +sys.path.insert(0, parent) + +from django.test.simple import run_tests +from django.conf import settings + +def runtests(): + failures = run_tests([ + 'contrib.BackendsTest', + ], verbosity=1, interactive=True) + sys.exit(failures) + +if __name__ == '__main__': + runtests() diff --git a/contrib/tests/test_core.py b/contrib/tests/test_core.py new file mode 100644 index 0000000..36e1b62 --- /dev/null +++ b/contrib/tests/test_core.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +from selenium import webdriver + +from django.test import TestCase +from django.conf import settings + + +class BackendsTest(TestCase): + def setUp(self): + self.driver = webdriver.Firefox() + + def tearDown(self): + self.driver.quit() + + def test_twitter_backend(self): + # We grab the Twitter testing user details from settings file + TEST_TWITTER_USER = getattr(settings, 'TEST_TWITTER_USER', None) + TEST_TWITTER_PASSWORD = getattr(settings, 'TEST_TWITTER_PASSWORD', None) + self.assertTrue(TEST_TWITTER_USER) + self.assertTrue(TEST_TWITTER_PASSWORD) + + self.driver.get("http://social.matiasaguirre.net/login/twitter/") + + # We log in + username_field = self.driver.find_element_by_id("username_or_email") + username_field.send_keys(TEST_TWITTER_USER) + + password_field = self.driver.find_element_by_id("session[password]") + password_field.send_keys(TEST_TWITTER_PASSWORD) + password_field.submit() + + # The application might be already allowed + try: + self.driver.find_element_by_id("allow").click() + except: + pass + + # We check the user logged in + heading = self.driver.find_element_by_id("heading") + if not heading.text == u'Logged in!': + raise Exception("The user didn't logged in") + + # Here we could test the User's fields diff --git a/contrib/tests/test_settings.py b/contrib/tests/test_settings.py new file mode 100644 index 0000000..8b272c5 --- /dev/null +++ b/contrib/tests/test_settings.py @@ -0,0 +1,19 @@ +import os + +BASE_DIR = os.path.dirname(__file__) + +INSTALLED_APPS = ( + 'contrib', +) + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + } +} + +TEST_TWITTER_USER = "" +TEST_TWITTER_PASSWORD = "" + +TEST_GOOGLE_USER = "" +TEST_GOOGLE_PASSWORD = "" -- 2.39.5