Authentication fixed
diff --git a/xos/core/tests.py b/xos/core/tests.py
index 147409f..22386fc 100644
--- a/xos/core/tests.py
+++ b/xos/core/tests.py
@@ -11,6 +11,61 @@
 
 print "-------------------------- Let's test!!!!!!!! --------------------------"
 
+from django.apps import apps
+from django.test.client import Client
+from django.test import testcases
+from django.http import SimpleCookie, HttpRequest, QueryDict
+from importlib import import_module
+from django.conf import settings
+class FixedClient(Client):
+    def login(self, **credentials):
+        """
+        Sets the Factory to appear as if it has successfully logged into a site.
+
+        Returns True if login is possible; False if the provided credentials
+        are incorrect, or the user is inactive, or if the sessions framework is
+        not available.
+        """
+        from django.contrib.auth import authenticate, login
+        user = authenticate(**credentials)
+        if (user and user.is_active and
+                apps.is_installed('django.contrib.sessions')):
+            engine = import_module(settings.SESSION_ENGINE)
+
+            # Create a fake request to store login details.
+            request = HttpRequest()
+
+            # XOS's admin.py requires these to be filled in
+            request.POST = {"username": credentials["username"],
+                            "password": credentials["password"]}
+
+            if self.session:
+                request.session = self.session
+            else:
+                request.session = engine.SessionStore()
+            login(request, user)
+
+            # Save the session values.
+            request.session.save()
+
+            # Set the cookie to represent the session.
+            session_cookie = settings.SESSION_COOKIE_NAME
+            self.cookies[session_cookie] = request.session.session_key
+            cookie_data = {
+                'max-age': None,
+                'path': '/',
+                'domain': settings.SESSION_COOKIE_DOMAIN,
+                'secure': settings.SESSION_COOKIE_SECURE or None,
+                'expires': None,
+                }
+            self.cookies[session_cookie].update(cookie_data)
+
+            return True
+        else:
+            return False
+
+class FixedAPITestCase(testcases.TestCase):
+    client_class = FixedClient
 
 # Environment Tests - Should pass everytime, if not something in the config is broken.
 class SimpleTest(TestCase):
@@ -42,7 +97,7 @@
         self.assertEqual(site.login_base, "test_")
 
 
-class UnautheticatedRequest(APITestCase):
+class UnautheticatedRequest(FixedAPITestCase):
     fixtures = []
 
     def test_require_authentication(self):
@@ -53,13 +108,13 @@
         self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
 
 
-class SiteTestAPI(APITestCase):
+class SiteTestAPI(FixedAPITestCase):
     fixtures = []
 
     def setUp(self):
         self.site = Site.objects.create(
-          name="Test Site",
-          login_base="test_"
+            name="Test Site",
+            login_base="test_"
         )
         self.user = User(
             username='testuser',
@@ -69,9 +124,9 @@
             is_admin=True
         )
         self.user.save()
-        self.client.login(email='test@mail.org', password='testing')
+        self.client.login(username='test@mail.org', password='testing')
 
-    def xtest_read_site_API(self):
+    def test_read_site_API(self):
         """
         Read a Site trough API
         """
@@ -81,7 +136,7 @@
         self.assertEqual(len(parsed), 1)
         self.assertEqual(parsed[0]['login_base'], 'test_')
 
-    def xtest_create_site_API(self):
+    def test_create_site_API(self):
         """
         Create a Site trough API
         """
@@ -97,13 +152,13 @@
         self.assertEqual(Site.objects.filter(name="Another Test Site").count(), 1)
 
 
-class SliceTestAPI(APITestCase):
+class SliceTestAPI(FixedAPITestCase):
     fixtures = []
 
     def setUp(self):
         self.site = Site.objects.create(
-          name="Test Site",
-          login_base="test_"
+            name="Test Site",
+            login_base="test_"
         )
         self.pi = SiteRole.objects.create(role='pi')
         self.user = User(
@@ -119,11 +174,11 @@
             role=self.pi
         )
         self.serviceClass = ServiceClass.objects.create(
-           name='Test Service Class'
+            name='Test Service Class'
         )
-        self.client.login(email='test@mail.org', password='testing')
+        self.client.login(username='test@mail.org', password='testing')
 
-    def xtest_create_site_slice(self):
+    def test_create_site_slice(self):
         """
         Add a slice to a given site
         """
@@ -135,7 +190,7 @@
         response = self.client.post('/xos/slices/?no_hyperlinks=1', data, format='json')
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
 
-    def xtest_validation_slice_name(self):
+    def test_validation_slice_name(self):
         """
         The slice name should start with site.login_base
         curl -H "Accept: application/json; indent=4" -u padmin@vicci.org:letmein 'http://xos:9999/xos/slices/?no_hyperlinks=1' -H "Content-Type: application/json" -X POST --data '{"name": "test", "site":"1", "serviceClass":1}'
@@ -150,7 +205,7 @@
         self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
         self.assertEqual(parsed['detail']['specific_error'], "slice name must begin with test_")
 
-    def xtest_only_admin_can_change_creator(self):
+    def test_only_admin_can_change_creator(self):
         """
         Only an admin can change the creator of a slice
         """
@@ -177,7 +232,7 @@
         parsed = json.loads(response.content)
         self.assertEqual(parsed['detail']['specific_error'], "Insufficient privileges to change slice creator")
 
-class ServiceTestAPI(APITestCase):
+class ServiceTestAPI(FixedAPITestCase):
     fixtures = []
 
     def setUp(self):
@@ -232,30 +287,30 @@
     # [ ] user update service2
     # [ ] usercan NOT update service2
     # [x] admin update service1
-    def xtest_admin_read_all_service(self):
+    def test_admin_read_all_service(self):
         """
         Admin should read all the services
         """
-        self.client.login(email='admin@mail.org', password='testing')
+        self.client.login(username='admin@mail.org', password='testing')
         response = self.client.get('/xos/services/', format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
         self.assertEqual(len(json.loads(response.content)), 2)
 
     # need to understand how slices are related
-    def xtest_user_read_all_service(self):
+    def test_user_read_all_service(self):
         """
         User should read only service for which have privileges
         """
-        self.client.login(email='user@mail.org', password='testing')
+        self.client.login(username='user@mail.org', password='testing')
         response = self.client.get('/xos/services/', format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
         self.assertEqual(len(json.loads(response.content)), 1)
 
-    def xtest_admin_read_one_service(self):
+    def test_admin_read_one_service(self):
         """
         Read a given service
         """
-        self.client.login(email='admin@mail.org', password='testing')
+        self.client.login(username='admin@mail.org', password='testing')
         response = self.client.get('/xos/services/%s/' % self.service1.id, format='json')
         parsed = json.loads(response.content)
         self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -268,9 +323,10 @@
         data = model_to_dict(self.service1)
         data['name'] = "newName"
 
-        self.client.login(email='admin@mail.org', password='testing')
+        self.client.login(username='admin@mail.org', password='testing')
         response = self.client.put('/xos/services/%s/' % self.service1.id, data, format='json')
         parsed = json.loads(response.content)
         self.assertEqual(response.status_code, status.HTTP_200_OK)
         model = Service.objects.get(id=self.service1.id)
-        self.assertEqual(model.name, data['name'])
\ No newline at end of file
+        self.assertEqual(model.name, data['name'])
+        
\ No newline at end of file