diff --git a/dusken/main/api/member.py b/dusken/main/api/member.py index eb479dc..b365c31 100644 --- a/dusken/main/api/member.py +++ b/dusken/main/api/member.py @@ -16,6 +16,8 @@ class MemberResource(ModelResource): detail_allowed_methods = [ 'get', 'post' ] authorization = Authorization() # TODO: for dev (VERY INSECURE) filtering = { - 'username' : ALL + 'username' : ALL, + 'epost' : ALL, + 'phone_number' : ALL } diff --git a/dusken/main/fixtures/members.json b/dusken/main/fixtures/members.json deleted file mode 100644 index ded2a1b..0000000 --- a/dusken/main/fixtures/members.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "pk": 1, - "model": "main.member", - "fields": { - "username": "robertko", - "address_id": null, - "surname": "", - "dateofbirth": null, - "phonenumber": null, - "givenname": "", - "email": "robert.kolner@studentersamfundet.no" - } - }, - { - "pk": 2, - "model": "main.member", - "fields": { - "username": "testersen", - "address_id": null, - "surname": "", - "dateofbirth": null, - "phonenumber": null, - "givenname": "", - "email": "kak-edb@studentersamfundet.no" - } - } -] diff --git a/dusken/main/fixtures/testdata.json b/dusken/main/fixtures/testdata.json new file mode 100644 index 0000000..57b9229 --- /dev/null +++ b/dusken/main/fixtures/testdata.json @@ -0,0 +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": "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"}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_logentry", "name": "Can add log entry", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_logentry", "name": "Can change log entry", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 7}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 4}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 4}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 4}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_address", "name": "Can add address", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_address", "name": "Can change address", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_address", "name": "Can delete address", "content_type": 9}}, {"pk": 22, "model": "auth.permission", "fields": {"codename": "add_country", "name": "Can add country", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_country", "name": "Can change country", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_country", "name": "Can delete country", "content_type": 8}}, {"pk": 43, "model": "auth.permission", "fields": {"codename": "add_extendedmemberdetail", "name": "Can add extended member detail", "content_type": 15}}, {"pk": 44, "model": "auth.permission", "fields": {"codename": "change_extendedmemberdetail", "name": "Can change extended member detail", "content_type": 15}}, {"pk": 45, "model": "auth.permission", "fields": {"codename": "delete_extendedmemberdetail", "name": "Can delete extended member detail", "content_type": 15}}, {"pk": 37, "model": "auth.permission", "fields": {"codename": "add_facebookauth", "name": "Can add facebook auth", "content_type": 13}}, {"pk": 38, "model": "auth.permission", "fields": {"codename": "change_facebookauth", "name": "Can change facebook auth", "content_type": 13}}, {"pk": 39, "model": "auth.permission", "fields": {"codename": "delete_facebookauth", "name": "Can delete facebook auth", "content_type": 13}}, {"pk": 40, "model": "auth.permission", "fields": {"codename": "add_googleauth", "name": "Can add google auth", "content_type": 14}}, {"pk": 41, "model": "auth.permission", "fields": {"codename": "change_googleauth", "name": "Can change google auth", "content_type": 14}}, {"pk": 42, "model": "auth.permission", "fields": {"codename": "delete_googleauth", "name": "Can delete google auth", "content_type": 14}}, {"pk": 55, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 19}}, {"pk": 56, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 19}}, {"pk": 57, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 19}}, {"pk": 58, "model": "auth.permission", "fields": {"codename": "add_groupmembership", "name": "Can add group membership", "content_type": 20}}, {"pk": 59, "model": "auth.permission", "fields": {"codename": "change_groupmembership", "name": "Can change group membership", "content_type": 20}}, {"pk": 60, "model": "auth.permission", "fields": {"codename": "delete_groupmembership", "name": "Can delete group membership", "content_type": 20}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_institution", "name": "Can add institution", "content_type": 10}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_institution", "name": "Can change institution", "content_type": 10}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_institution", "name": "Can delete institution", "content_type": 10}}, {"pk": 34, "model": "auth.permission", "fields": {"codename": "add_member", "name": "Can add member", "content_type": 12}}, {"pk": 35, "model": "auth.permission", "fields": {"codename": "change_member", "name": "Can change member", "content_type": 12}}, {"pk": 36, "model": "auth.permission", "fields": {"codename": "delete_member", "name": "Can delete member", "content_type": 12}}, {"pk": 52, "model": "auth.permission", "fields": {"codename": "add_membership", "name": "Can add membership", "content_type": 18}}, {"pk": 53, "model": "auth.permission", "fields": {"codename": "change_membership", "name": "Can change membership", "content_type": 18}}, {"pk": 54, "model": "auth.permission", "fields": {"codename": "delete_membership", "name": "Can delete membership", "content_type": 18}}, {"pk": 49, "model": "auth.permission", "fields": {"codename": "add_membershiptype", "name": "Can add membership type", "content_type": 17}}, {"pk": 50, "model": "auth.permission", "fields": {"codename": "change_membershiptype", "name": "Can change membership type", "content_type": 17}}, {"pk": 51, "model": "auth.permission", "fields": {"codename": "delete_membershiptype", "name": "Can delete membership type", "content_type": 17}}, {"pk": 46, "model": "auth.permission", "fields": {"codename": "add_paymentformembership", "name": "Can add payment for membership", "content_type": 16}}, {"pk": 47, "model": "auth.permission", "fields": {"codename": "change_paymentformembership", "name": "Can change payment for membership", "content_type": 16}}, {"pk": 48, "model": "auth.permission", "fields": {"codename": "delete_paymentformembership", "name": "Can delete payment for membership", "content_type": 16}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_placeofstudy", "name": "Can add place of study", "content_type": 11}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_placeofstudy", "name": "Can change place of study", "content_type": 11}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_placeofstudy", "name": "Can delete place of study", "content_type": 11}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 5}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 6}}, {"pk": 61, "model": "auth.permission", "fields": {"codename": "add_apiaccess", "name": "Can add api access", "content_type": 21}}, {"pk": 62, "model": "auth.permission", "fields": {"codename": "change_apiaccess", "name": "Can change api access", "content_type": 21}}, {"pk": 63, "model": "auth.permission", "fields": {"codename": "delete_apiaccess", "name": "Can delete api access", "content_type": 21}}, {"pk": 64, "model": "auth.permission", "fields": {"codename": "add_apikey", "name": "Can add api key", "content_type": 22}}, {"pk": 65, "model": "auth.permission", "fields": {"codename": "change_apikey", "name": "Can change api key", "content_type": 22}}, {"pk": 66, "model": "auth.permission", "fields": {"codename": "delete_apikey", "name": "Can delete api key", "content_type": 22}}, {"pk": 1, "model": "auth.user", "fields": {"username": "root", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2013-02-01T16:11:21Z", "groups": [], "user_permissions": [], "password": "pbkdf2_sha256$10000$06HOwDGxMxeX$CwPXm7MBVWbiGMKaOjqOtN1rJCWehsb0mlxSq6G4lco=", "email": "robert.kolner@gmail.com", "date_joined": "2013-02-01T16:11:21Z"}}] \ No newline at end of file diff --git a/dusken/main/tests/MemberTest.py b/dusken/main/tests/MemberTest.py index 8709c46..c86d84e 100644 --- a/dusken/main/tests/MemberTest.py +++ b/dusken/main/tests/MemberTest.py @@ -4,11 +4,29 @@ from support.test import ResourceTestCase from main.models import Member class MemberTest(ResourceTestCase): - fixtures = [ 'members.json' ] + fixtures = [ 'testdata.json' ] def assertValidMemberData(self, member): self.assertEquals(type(member), dict) - self.assertKeys(member, [ u'member_id', u'email', u'username', u'phonenumber', u'givenname', u'dateofbirth', u'surname', u'resource_uri' ]) + 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()