示例#1
0
class test_user_service(unittest.TestCase):
    def setUp(self):
        self.dbClient = MongoClient()
        self.db = self.dbClient.test_foodbeazt_database
        self.db.user_collection.drop()
        self.service = UserService(self.db)

    def get_model(self, email):
        item = {"name": "test", "username": email, "email": email, "auth_type": "google",
                "registered_ip": "10.0.0.1"}
        return item

    def test_create_user(self):
        no = str(random.randint(1, 10000))
        item = self.get_model("test" + no + "@test.com")
        id = self.service.create(item)
        assert id is not None
        return id

    def test_duplicate_user(self):
        item = self.get_model("*****@*****.**")
        self.service.create(item)
        try:
            self.service.create(item)
            assert False
        except DuplicateUserException as e:
            assert True

    def test_get_user_by_email(self):
        item = self.get_model("*****@*****.**")
        self.service.create(item)
        item = self.service.get_by_email("*****@*****.**")
        assert item is not None
        assert item["email"] == "*****@*****.**"

    def test_get_all_users(self):
        self.test_create_user()
        items = self.service.search()
        assert items is not None
        assert len(items) > 0

    def test_delete_user(self):
        id = self.test_create_user()
        self.service.delete(str(id))

    def test_update_user(self):
        id = self.test_create_user()
        item = self.test_get_by_id(str(id))
        item['name'] = "updated test name"
        item = self.service.update(item)
        assert item is not None
        assert item['name'] == 'updated test name'
        assert 'updated_at' in item

    def test_get_by_id(self, id=None):
        if not id:
            id = self.test_create_user()
        item = self.service.get_by_id(id)
        assert item is not None
        return item
示例#2
0
文件: fapp.py 项目: cackharot/fbeazt
def get_or_create_user(item):
    service = UserService(mongo.db)
    email = item['email']
    prev = service.get_by_email(email)
    if prev:
        return prev
    logger.info("Creating new user...[%s]" % email)

    tenant_id = default_tenantId()

    if email == app.config['SUPER_ADMIN_EMAIL']:
        roles = ["tenant_admin", 'member']
    else:
        roles = ["member"]

    user = {
        'username': email,
        'email': email,
        'name': item['name'],
        'auth_type': 'google',
        'tenant_id': tenant_id,
        'roles': roles,
        'identity': item.get('id', item.get('sub', None))
    }
    service.create(user)
    return user
示例#3
0
def setup(client, dbname='foodbeaztDb', sample_data=False, debug=True):
    global log_enabled
    log_enabled = debug
    db = client[dbname]
    log("Checking admin tenant")
    tenant_service = TenantService(db)
    user_service = UserService(db)
    pincode_service = PincodeService(db)

    if not tenant_service.check_name_exists(None, "FoodBeazt"):
        log("Creating admin tenant")
        item = {"name": "FoodBeazt", "description": "super admin tenant", "website": "http://www.foodbeazt.in",
                "url": "http://www.foodbeazt.in", "type": "super_admin", "logo": "foodbeazt_logo.png",
                "contact": {"name": "admin", "email": "*****@*****.**", "phone": "+91 7373730484"},
                "registered_ip": "10.0.0.1",
                "address": {"address": "Puducherry", "zipcode": "605001", "country": "INDIA", "state": "Puducherry"}}
        tenant_id = tenant_service.create(item)

        item['tenant_id'] = tenant_id
        tenant_service.update(item)

    log('\nTenant:')
    tenant = tenant_service.get_by_name("FoodBeazt")
    log(json.dumps(tenant, default=json_util.default))
    tenant_id = tenant['_id']

    log('\nUser:'******'pincode': '605001'}
    pincode_service.save(pincode)

    if sample_data:
        log('\nCreating sample product data:')
        create_sample_data(db, tenant_id)