]> git.parisson.com Git - django-social-auth.git/commitdiff
Adding contrib app to the root level. Contains a tests directory with Selenium2 tests...
authorMiguel Araujo Perez <miguel.araujo.perez@gmail.com>
Sun, 1 May 2011 12:15:11 +0000 (14:15 +0200)
committerMiguel Araujo Perez <miguel.araujo.perez@gmail.com>
Sun, 1 May 2011 12:15:11 +0000 (14:15 +0200)
contrib is the minimum viable app structure. DjangoTestSuiteRunner expects
a file named tests or a module named tests.

contrib/__init__.py [new file with mode: 0644]
contrib/models.py [new file with mode: 0644]
contrib/tests/runtests.py [new file with mode: 0755]
contrib/tests/test_core.py [new file with mode: 0644]
contrib/tests/test_settings.py [new file with mode: 0644]

diff --git a/contrib/__init__.py b/contrib/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/contrib/models.py b/contrib/models.py
new file mode 100644 (file)
index 0000000..71a8362
--- /dev/null
@@ -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 (executable)
index 0000000..4ac0f81
--- /dev/null
@@ -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 (file)
index 0000000..36e1b62
--- /dev/null
@@ -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 (file)
index 0000000..8b272c5
--- /dev/null
@@ -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 = ""