Fixtures uses natural keys, s/tabs/spaces

This commit is contained in:
nikolark committed 2013-02-03 12:45:02 +01:00
1 parent a518ec81d3
commit 02b41c3337
3 files changed
+95 -95

No files matched your search

+16 -16
View File
@@ -4,20 +4,20 @@ from main.models import *
class MemberResource(ModelResource):
"""
This class provides following endpoints:
(1) /api/v1/member/
(2) /api/v1/member/{id}/
"""
class Meta:
queryset = Member.objects.all()
resource_name = 'member'
list_allowed_methods = [ 'get', 'post' ]
detail_allowed_methods = [ 'get', 'post' ]
authorization = Authorization() # TODO: for dev (VERY INSECURE)
filtering = {
'username' : ALL,
'epost' : ALL,
'phone_number' : ALL
}
"""
This class provides following endpoints:
(1) /api/v1/member/
(2) /api/v1/member/{id}/
"""
class Meta:
queryset = Member.objects.all()
resource_name = 'member'
list_allowed_methods = [ 'get', 'post' ]
detail_allowed_methods = [ 'get', 'post' ]
authorization = Authorization() # TODO: for dev (VERY INSECURE)
filtering = {
'username' : ALL,
'epost' : ALL,
'phone_number' : ALL
}
+1 -1
View File
@@ -1 +1 @@
[{"pk": 9, "model": "contenttypes.contenttype", "fields": {"model": "address", "name": "address", "app_label": "main"}}, {"pk": 21, "model": "contenttypes.contenttype", "fields": {"model": "apiaccess", "name": "api access", "app_label": "tastypie"}}, {"pk": 22, "model": "contenttypes.contenttype", "fields": {"model": "apikey", "name": "api key", "app_label": "tastypie"}}, {"pk": 4, "model": "contenttypes.contenttype", "fields": {"model": "contenttype", "name": "content type", "app_label": "contenttypes"}}, {"pk": 8, "model": "contenttypes.contenttype", "fields": {"model": "country", "name": "country", "app_label": "main"}}, {"pk": 15, "model": "contenttypes.contenttype", "fields": {"model": "extendedmemberdetail", "name": "extended member detail", "app_label": "main"}}, {"pk": 13, "model": "contenttypes.contenttype", "fields": {"model": "facebookauth", "name": "facebook auth", "app_label": "main"}}, {"pk": 14, "model": "contenttypes.contenttype", "fields": {"model": "googleauth", "name": "google auth", "app_label": "main"}}, {"pk": 19, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "main"}}, {"pk": 2, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "auth"}}, {"pk": 20, "model": "contenttypes.contenttype", "fields": {"model": "groupmembership", "name": "group membership", "app_label": "main"}}, {"pk": 10, "model": "contenttypes.contenttype", "fields": {"model": "institution", "name": "institution", "app_label": "main"}}, {"pk": 7, "model": "contenttypes.contenttype", "fields": {"model": "logentry", "name": "log entry", "app_label": "admin"}}, {"pk": 12, "model": "contenttypes.contenttype", "fields": {"model": "member", "name": "member", "app_label": "main"}}, {"pk": 18, "model": "contenttypes.contenttype", "fields": {"model": "membership", "name": "membership", "app_label": "main"}}, {"pk": 17, "model": "contenttypes.contenttype", "fields": {"model": "membershiptype", "name": "membership type", "app_label": "main"}}, {"pk": 16, "model": "contenttypes.contenttype", "fields": {"model": "paymentformembership", "name": "payment for membership", "app_label": "main"}}, {"pk": 1, "model": "contenttypes.contenttype", "fields": {"model": "permission", "name": "permission", "app_label": "auth"}}, {"pk": 11, "model": "contenttypes.contenttype", "fields": {"model": "placeofstudy", "name": "place of study", "app_label": "main"}}, {"pk": 5, "model": "contenttypes.contenttype", "fields": {"model": "session", "name": "session", "app_label": "sessions"}}, {"pk": 6, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "sites"}}, {"pk": 3, "model": "contenttypes.contenttype", "fields": {"model": "user", "name": "user", "app_label": "auth"}}, {"pk": 1, "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}, {"pk": 1, "model": "main.country", "fields": {"updated": "2013-02-01T17:14:37Z", "name": "Norge", "created": "2013-02-01T17:14:37Z"}}, {"pk": 1, "model": "main.address", "fields": {"city": "Oslo", "updated": "2013-02-01T17:15:15Z", "created": "2013-02-01T17:15:15Z", "country": 1, "postal_code": "0266", "street_address": "Odins gate 12A H0401"}}, {"pk": 1, "model": "main.institution", "fields": {"updated": "2013-02-01T17:14:14Z", "name": "Universitetet i Oslo", "created": "2013-02-01T17:14:14Z"}}, {"pk": 1, "model": "main.placeofstudy", "fields": {"from_date": "2013-02-01", "updated": "2013-02-01T17:52:06Z", "institution": 1, "created": "2013-02-01T17:52:06Z"}}, {"pk": 1, "model": "main.member", "fields": {"username": "robertko", "phone_number": 90567268, "first_name": "Robert", "last_name": "Kolner", "created": "2013-02-01T17:51:12Z", "place_of_study": [1], "updated": "2013-02-01T17:51:12Z", "date_of_birth": "1988-12-31", "legacy_id": null, "address": 1, "password": "lol", "email": "robert.kolner@gmail.com"}}, {"pk": 2, "model": "main.member", "fields": {"username": null, "phone_number": null, "first_name": null, "last_name": null, "created": "2013-02-01T17:55:12Z", "place_of_study": [], "updated": "2013-02-01T17:55:12Z", "date_of_birth": null, "legacy_id": null, "address": null, "password": "asdf", "email": "asdf@asdf.com"}}, {"pk": 1, "model": "main.paymentformembership", "fields": {"voucher_id": null, "webshop_payment_id": 1337, "sms_payment_id": null, "updated": "2013-02-01T17:51:37Z", "created": "2013-02-01T17:51:37Z"}}, {"pk": 1, "model": "main.membershiptype", "fields": {"duration_months": 12, "updated": "2013-02-01T17:13:39Z", "name": "Medlem av DNS", "created": "2013-02-01T17:13:39Z", "end_month": 7, "end_day_of_month": 31}}, {"pk": 1, "model": "main.membership", "fields": {"member": 1, "updated": "2013-02-01T17:53:07Z", "created": "2013-02-01T17:53:07Z", "payment": 1, "mtype": 1, "start_date": "2013-02-01"}}, {"pk": 1, "model": "main.group", "fields": {"updated": "2013-02-01T17:44:48Z", "created": "2013-02-01T17:44:48Z", "name": "EDB", "posix_name": "Line truncated
[{"pk": 1, "model": "main.country", "fields": {"updated": "2013-02-01T17:14:37Z", "name": "Norge", "created": "2013-02-01T17:14:37Z"}}, {"pk": 1, "model": "main.address", "fields": {"city": "Oslo", "updated": "2013-02-01T17:15:15Z", "created": "2013-02-01T17:15:15Z", "country": 1, "postal_code": "0266", "street_address": "Odins gate 12A H0401"}}, {"pk": 1, "model": "main.institution", "fields": {"updated": "2013-02-01T17:14:14Z", "name": "Universitetet i Oslo", "created": "2013-02-01T17:14:14Z"}}, {"pk": 1, "model": "main.placeofstudy", "fields": {"from_date": "2013-02-01", "updated": "2013-02-01T17:52:06Z", "institution": 1, "created": "2013-02-01T17:52:06Z"}}, {"pk": 1, "model": "main.member", "fields": {"username": "robertko", "phone_number": 90567268, "first_name": "Robert", "last_name": "Kolner", "created": "2013-02-01T17:51:12Z", "place_of_study": [1], "updated": "2013-02-01T17:51:12Z", "date_of_birth": "1988-12-31", "legacy_id": null, "address": 1, "password": "lol", "email": "robert.kolner@gmail.com"}}, {"pk": 2, "model": "main.member", "fields": {"username": null, "phone_number": null, "first_name": null, "last_name": null, "created": "2013-02-01T17:55:12Z", "place_of_study": [], "updated": "2013-02-01T17:55:12Z", "date_of_birth": null, "legacy_id": null, "address": null, "password": "asdf", "email": "asdf@asdf.com"}}, {"pk": 1, "model": "main.paymentformembership", "fields": {"voucher_id": null, "webshop_payment_id": 1337, "sms_payment_id": null, "updated": "2013-02-01T17:51:37Z", "created": "2013-02-01T17:51:37Z"}}, {"pk": 1, "model": "main.membershiptype", "fields": {"duration_months": 12, "updated": "2013-02-01T17:13:39Z", "name": "Medlem av DNS", "created": "2013-02-01T17:13:39Z", "end_month": 7, "end_day_of_month": 31}}, {"pk": 1, "model": "main.membership", "fields": {"member": 1, "updated": "2013-02-01T17:53:07Z", "created": "2013-02-01T17:53:07Z", "payment": 1, "mtype": 1, "start_date": "2013-02-01"}}, {"pk": 1, "model": "main.group", "fields": {"updated": "2013-02-01T17:44:48Z", "created": "2013-02-01T17:44:48Z", "name": "EDB", "posix_name": "edb"}}, {"pk": 2, "model": "main.group", "fields": {"updated": "2013-02-01T17:45:21Z", "created": "2013-02-01T17:45:21Z", "name": "Aktiv", "posix_name": "dns-aktiv"}}, {"pk": 3, "model": "main.group", "fields": {"updated": "2013-02-01T17:46:24Z", "created": "2013-02-01T17:46:24Z", "name": "Alle", "posix_name": "dns-alle"}}, {"pk": 1, "model": "main.groupmembership", "fields": {"member": 1, "updated": "2013-02-01T17:53:31Z", "group": 1, "start_date": "2013-02-01", "created": "2013-02-01T17:53:31Z"}}, {"pk": 2, "model": "main.groupmembership", "fields": {"member": 1, "updated": "2013-02-01T17:53:44Z", "group": 2, "start_date": "2013-02-01", "created": "2013-02-01T17:53:44Z"}}]
+78 -78
View File
@@ -4,99 +4,99 @@ from support.test import ResourceTestCase
from main.models import Member
class MemberTest(ResourceTestCase):
fixtures = [ 'testdata.json' ]
fixtures = [ 'testdata.json' ]
def assertValidMemberData(self, member):
self.assertEquals(type(member), dict)
self.assertKeys(member, [
u'id',
u'email',
u'username',
u'password',
u'phone_number',
u'first_name',
u'last_name',
u'date_of_birth',
u'legacy_id',
u'created',
u'updated',
u'resource_uri'
])
self.assertNotEquals(None,member['id'])
self.assertNotEquals(None,member['email'])
self.assertNotEquals(None,member['created'])
self.assertNotEquals(None,member['updated'])
self.assertNotEquals(None,member['resource_uri'])
def assertValidMemberData(self, member):
self.assertEquals(type(member), dict)
self.assertKeys(member, [
u'id',
u'email',
u'username',
u'password',
u'phone_number',
u'first_name',
u'last_name',
u'date_of_birth',
u'legacy_id',
u'created',
u'updated',
u'resource_uri'
])
self.assertNotEquals(None,member['id'])
self.assertNotEquals(None,member['email'])
self.assertNotEquals(None,member['created'])
self.assertNotEquals(None,member['updated'])
self.assertNotEquals(None,member['resource_uri'])
def setUp(self):
super(MemberTest, self).setUp()
def setUp(self):
super(MemberTest, self).setUp()
# Get the preloaded member, which will be used for
# comparison with fetched object.
self.member = Member.objects.get(username='robertko')
# Get the preloaded member, which will be used for
# comparison with fetched object.
self.member = Member.objects.get(username='robertko')
# URI to get the existing member. We'll probably
# need it at one point or another.
self.all_members_url = '/api/v1/member/'
self.member_url = self.all_members_url + '{}/'.format(self.member.pk)
# URI to get the existing member. We'll probably
# need it at one point or another.
self.all_members_url = '/api/v1/member/'
self.member_url = self.all_members_url + '{}/'.format(self.member.pk)
def test_check_request_types(self):
"""
Tests that the endpoint responds to correct types of requests.
"""
resp = self.api_client.get(self.all_members_url, format='json')
self.assertNotEquals(resp.status_code, 405)
def test_check_request_types(self):
"""
Tests that the endpoint responds to correct types of requests.
"""
resp = self.api_client.get(self.all_members_url, format='json')
self.assertNotEquals(resp.status_code, 405)
resp = self.api_client.post(self.all_members_url)
self.assertNotEquals(resp.status_code, 405)
resp = self.api_client.post(self.all_members_url)
self.assertNotEquals(resp.status_code, 405)
resp = self.api_client.put(self.all_members_url)
self.assertHttpMethodNotAllowed(resp)
resp = self.api_client.put(self.all_members_url)
self.assertHttpMethodNotAllowed(resp)
resp = self.api_client.delete(self.all_members_url)
self.assertHttpMethodNotAllowed(resp)
resp = self.api_client.delete(self.all_members_url)
self.assertHttpMethodNotAllowed(resp)
def test_get_member(self):
"""
Tests that we can get a premade user correctly.
"""
resp = self.api_client.get(self.member_url, format='json')
self.assertValidJSONResponse(resp)
def test_get_member(self):
"""
Tests that we can get a premade user correctly.
"""
resp = self.api_client.get(self.member_url, format='json')
self.assertValidJSONResponse(resp)
# Check if the returned data is correct:
member = self.deserialize(resp)
self.assertValidMemberData(member)
# Check if the returned data is correct:
member = self.deserialize(resp)
self.assertValidMemberData(member)
def test_get_all_members(self):
"""
Tests that we can get all users from the api.
"""
resp = self.api_client.get(self.all_members_url, format='json')
self.assertValidJSONResponse(resp)
def test_get_all_members(self):
"""
Tests that we can get all users from the api.
"""
resp = self.api_client.get(self.all_members_url, format='json')
self.assertValidJSONResponse(resp)
# Check if the returned data is correct:
all_members = self.deserialize(resp)['objects']
self.assertEqual(len(all_members), 2)
for index in range(len(all_members)):
self.assertValidMemberData(all_members[index])
# Check if the returned data is correct:
all_members = self.deserialize(resp)['objects']
self.assertEqual(len(all_members), 2)
def test_get_filtered_members(self):
"""
Tests that we can get a filtered list from the api.
"""
data = {
"username" : "robertko"
}
for index in range(len(all_members)):
self.assertValidMemberData(all_members[index])
resp = self.api_client.get(self.all_members_url, format='json', data=data)
self.assertValidJSONResponse(resp)
def test_get_filtered_members(self):
"""
Tests that we can get a filtered list from the api.
"""
data = {
"username" : "robertko"
}
# Check if the returned data is correct:
all_members = self.deserialize(resp)['objects']
self.assertEqual(len(all_members), 1)
resp = self.api_client.get(self.all_members_url, format='json', data=data)
self.assertValidJSONResponse(resp)
member = all_members[0]
self.assertValidMemberData(member)
# Check if the returned data is correct:
all_members = self.deserialize(resp)['objects']
self.assertEqual(len(all_members), 1)
member = all_members[0]
self.assertValidMemberData(member)