mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Add 'user' variable to trigger formulas
Summary: The 'user' variable has a similar API to the one from access rules: it contains properties about a user, such as their full name and email address, as well as optional, user-defined attributes that are populated via user attribute tables. Test Plan: Python unit tests. Reviewers: alexmojaki, paulfitz, dsagal Reviewed By: alexmojaki, dsagal Subscribers: paulfitz, dsagal, alexmojaki Differential Revision: https://phab.getgrist.com/D2898
This commit is contained in:
54
sandbox/grist/test_user.py
Normal file
54
sandbox/grist/test_user.py
Normal file
@@ -0,0 +1,54 @@
|
||||
from user import User
|
||||
import test_engine
|
||||
import testsamples
|
||||
|
||||
class TestUser(test_engine.EngineTestCase):
|
||||
# pylint: disable=no-member
|
||||
def setUp(self):
|
||||
super(TestUser, self).setUp()
|
||||
self.load_sample(testsamples.sample_students)
|
||||
|
||||
def test_constructor_sets_user_attributes(self):
|
||||
data = {
|
||||
'Access': 'owners',
|
||||
'Name': 'Foo Bar',
|
||||
'Email': 'email@example.com',
|
||||
'UserID': 1,
|
||||
'LinkKey': {
|
||||
'Param1': 'Param1Value',
|
||||
'Param2': 'Param2Value'
|
||||
},
|
||||
'Origin': 'https://getgrist.com',
|
||||
'StudentInfo': ['Students', 1]
|
||||
}
|
||||
u = User(data, self.engine.tables)
|
||||
self.assertEqual(u.Name, 'Foo Bar')
|
||||
self.assertEqual(u.Email, 'email@example.com')
|
||||
self.assertEqual(u.UserID, 1)
|
||||
self.assertEqual(u.LinkKey.Param1, 'Param1Value')
|
||||
self.assertEqual(u.LinkKey.Param2, 'Param2Value')
|
||||
self.assertEqual(u.Access, 'owners')
|
||||
self.assertEqual(u.Origin, 'https://getgrist.com')
|
||||
self.assertEqual(u.StudentInfo.id, 1)
|
||||
self.assertEqual(u.StudentInfo.firstName, 'Barack')
|
||||
self.assertEqual(u.StudentInfo.lastName, 'Obama')
|
||||
self.assertEqual(u.StudentInfo.schoolName, 'Columbia')
|
||||
|
||||
def test_setting_is_sample_substitutes_attributes_with_samples(self):
|
||||
data = {
|
||||
'Access': 'owners',
|
||||
'Name': None,
|
||||
'Email': 'email@getgrist.com',
|
||||
'UserID': 1,
|
||||
'LinkKey': {
|
||||
'Param1': 'Param1Value',
|
||||
'Param2': 'Param2Value'
|
||||
},
|
||||
'Origin': 'https://getgrist.com',
|
||||
'StudentInfo': ['Students', 1]
|
||||
}
|
||||
u = User(data, self.engine.tables, is_sample=True)
|
||||
self.assertEqual(u.StudentInfo.id, 0)
|
||||
self.assertEqual(u.StudentInfo.firstName, '')
|
||||
self.assertEqual(u.StudentInfo.lastName, '')
|
||||
self.assertEqual(u.StudentInfo.schoolName, '')
|
||||
Reference in New Issue
Block a user