From 545e43c720931fa6944ccf3bfc54c94229cf166a Mon Sep 17 00:00:00 2001 From: Tao feng Date: Mon, 11 Mar 2019 15:52:39 -0700 Subject: [PATCH] Update user model --- databuilder/models/user.py | 43 ++++++++------------ setup.py | 2 +- tests/unit/models/test_table_column_usage.py | 24 +++++------ 3 files changed, 31 insertions(+), 38 deletions(-) diff --git a/databuilder/models/user.py b/databuilder/models/user.py index 6ed6ff79d..0dddf6754 100644 --- a/databuilder/models/user.py +++ b/databuilder/models/user.py @@ -57,17 +57,18 @@ def __init__(self, then we will have a cron job to update the ex-employee nodes based on the case if this timestamp hasn't been updated for two weeks. """ - self.first_name = first_name - self.last_name = last_name - self.name = name - self.email = email - self.github_username = github_username + self.first_name = first_name.encode('utf-8') + self.last_name = last_name.encode('utf-8') + self.name = name.encode('utf-8') + + self.email = email.encode('utf-8') + self.github_username = github_username.encode('utf-8') # todo: team will be a separate node once Amundsen People supports team - self.team_name = team_name - self.manager_email = manager_email - self.employee_type = employee_type + self.team_name = team_name.encode('utf-8') + self.manager_email = manager_email.encode('utf-8') + self.employee_type = employee_type.encode('utf-8') # this attr not available in team service, either update team service, update with FE - self.slack_id = slack_id + self.slack_id = slack_id.encode('utf-8') self.is_active = is_active self.updated_at = updated_at @@ -113,22 +114,14 @@ def create_nodes(self): User.USER_NODE_IS_ACTIVE: self.is_active, } - if self.first_name: - result_node[User.USER_NODE_FIRST_NAME] = self.first_name - if self.last_name: - result_node[User.USER_NODE_LAST_NAME] = self.last_name - if self.name: - result_node[User.USER_NODE_FULL_NAME] = self.name - if self.github_username: - result_node[User.USER_NODE_GITHUB_NAME] = self.github_username - if self.team_name: - result_node[User.USER_NODE_TEAM] = self.team_name - if self.employee_type: - result_node[User.USER_NODE_EMPLOYEE_TYPE] = self.employee_type - if self.slack_id: - result_node[User.USER_NODE_SLACK_ID] = self.slack_id - if self.updated_at: - result_node[User.USER_NODE_UPDATED_AT] = self.updated_at + result_node[User.USER_NODE_FIRST_NAME] = self.first_name if self.first_name else '' + result_node[User.USER_NODE_LAST_NAME] = self.last_name if self.last_name else '' + result_node[User.USER_NODE_FULL_NAME] = self.name if self.name else '' + result_node[User.USER_NODE_GITHUB_NAME] = self.github_username if self.github_username else '' + result_node[User.USER_NODE_TEAM] = self.team_name if self.team_name else '' + result_node[User.USER_NODE_EMPLOYEE_TYPE] = self.employee_type if self.employee_type else '' + result_node[User.USER_NODE_SLACK_ID] = self.slack_id if self.slack_id else '' + result_node[User.USER_NODE_UPDATED_AT] = self.updated_at if self.updated_at else 0 return [result_node] diff --git a/setup.py b/setup.py index 5911af018..fce607ca6 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages -__version__ = '1.0.6' +__version__ = '1.0.7' setup( diff --git a/tests/unit/models/test_table_column_usage.py b/tests/unit/models/test_table_column_usage.py index 731b46b97..c57384a3e 100644 --- a/tests/unit/models/test_table_column_usage.py +++ b/tests/unit/models/test_table_column_usage.py @@ -11,9 +11,7 @@ def test_serialize(self): # type: () -> None col_readers = [ColumnReader(database='db', cluster='gold', schema='scm', table='foo', column='*', - user_email='john@example.com'), - ColumnReader(database='db', cluster='gold', schema='scm', table='bar', column='*', - user_email='jane@example.com')] + user_email='john@example.com')] table_col_usage = TableColumnUsage(col_readers=col_readers) node_row = table_col_usage.next_node() @@ -22,14 +20,18 @@ def test_serialize(self): actual.append(node_row) node_row = table_col_usage.next_node() - expected = [{'is_active': True, + expected = [{'first_name': '', + 'last_name': '', + 'full_name': '', + 'employee_type': '', + 'is_active': True, + 'updated_at': 0, 'LABEL': 'User', + 'slack_id': '', 'KEY': 'john@example.com', - 'email': 'john@example.com'}, - {'is_active': True, - 'LABEL': 'User', - 'KEY': 'jane@example.com', - 'email': 'jane@example.com'}] + 'github_username': '', + 'team_name': '', + 'email': 'john@example.com'}] self.assertEqual(expected, actual) rel_row = table_col_usage.next_relation() @@ -39,9 +41,7 @@ def test_serialize(self): rel_row = table_col_usage.next_relation() expected = [{'read_count:UNQUOTED': 1, 'END_KEY': 'john@example.com', 'START_LABEL': 'Table', - 'END_LABEL': 'User', 'START_KEY': 'db://gold.scm/foo', 'TYPE': 'READ_BY', 'REVERSE_TYPE': 'READ'}, - {'read_count:UNQUOTED': 1, 'END_KEY': 'jane@example.com', 'START_LABEL': 'Table', - 'END_LABEL': 'User', 'START_KEY': 'db://gold.scm/bar', 'TYPE': 'READ_BY', 'REVERSE_TYPE': 'READ'}] + 'END_LABEL': 'User', 'START_KEY': 'db://gold.scm/foo', 'TYPE': 'READ_BY', 'REVERSE_TYPE': 'READ'}] self.assertEqual(expected, actual)