User class with tests

This commit is contained in:
Rafa de la Torre 2016-09-28 16:30:37 +02:00
parent facda9e8be
commit 18f05fbd4f
6 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,24 @@
class User(object):
def __init__(self, username, orgname = None):
self.__username = username
self.__orgname = orgname
@property
def username(self):
return self.__username
@property
def orgname(self):
return self.__orgname
@property
def is_org_user(self):
return self.__orgname is not None
def __eq__(self, other):
# NOTE: usernames are unique in the system
eq = (self.__username == other.__username)
if eq:
assert self.__orgname == other.__orgname, 'Found two users with same name and different orgs!'
return eq

View File

@ -0,0 +1,43 @@
from unittest import TestCase
from cartodb_services.refactor.core.user import User
from nose.tools import assert_raises, raises
class TestUser(TestCase):
def test_can_retrieve_properties(self):
u = User('pepito', 'acme')
assert u.username == 'pepito'
assert u.orgname == 'acme'
@raises(AttributeError)
def test_cannot_modify_properties(self):
u = User('pepito')
u.username = 'juanito'
def test_is_org_user_returns_true_for_org_users(self):
u = User('pepito', 'acme')
assert u.is_org_user == True
def test_is_org_user_returns_false_for_non_org_users(self):
u = User('pepito')
assert u.is_org_user == False
def test_different_users_are_not_equal(self):
u1 = User('pepito')
u2 = User('juanito')
assert u1 != u2
def test_same_user_are_equal(self):
u1 = User('pepito')
u2 = User('pepito')
assert u1 == u2
o1 = User('juanito', 'acme')
o2 = User('juanito', 'acme')
assert o1 == o2
@raises(AssertionError)
def test_raises_exception_if_same_user_is_in_two_orgs(self):
u1 = User('juanito', 'acme')
u2 = User('juanito', 'some_other_org')
u1 == u2