示例#1
0
class TestUser(unittest.TestCase):

    def setUp(self) -> None:
        super(TestUser, self).setUp()
        self.user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe')

    def test_get_user_model_key(self) -> None:
        user_email = User.get_user_model_key(email=self.user.email)
        self.assertEqual(user_email, '*****@*****.**')

    def test_create_nodes(self) -> None:
        nodes = self.user.create_nodes()
        self.assertEqual(len(nodes), 1)

    def test_create_node_additional_attr(self) -> None:
        test_user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe',
                         enable_notify=True)
        nodes = test_user.create_nodes()
        serialized_node = neo4_serializer.serialize_node(nodes[0])
        self.assertEqual(serialized_node['email'], '*****@*****.**')
        self.assertEqual(serialized_node['role_name'], 'swe')
        self.assertTrue(serialized_node['enable_notify:UNQUOTED'])

    def test_create_relation(self) -> None:
        relations = self.user.create_relation()
        self.assertEqual(len(relations), 1)

        start_key = '*****@*****.**'
        end_key = '*****@*****.**'

        expected_relation = {
            RELATION_START_KEY: start_key,
            RELATION_START_LABEL: User.USER_NODE_LABEL,
            RELATION_END_KEY: end_key,
            RELATION_END_LABEL: User.USER_NODE_LABEL,
            RELATION_TYPE: User.USER_MANAGER_RELATION_TYPE,
            RELATION_REVERSE_TYPE: User.MANAGER_USER_RELATION_TYPE
        }

        self.assertTrue(expected_relation, neo4_serializer.serialize_relationship(relations[0]))

    def test_not_including_empty_attribute(self) -> None:
        test_user = User(email='*****@*****.**',
                         foo='bar')

        self.assertDictEqual(neo4_serializer.serialize_node(test_user.create_next_node()),
                             {'KEY': '*****@*****.**', 'LABEL': 'User', 'email': '*****@*****.**',
                              'is_active:UNQUOTED': True, 'first_name': '', 'last_name': '', 'full_name': '',
                              'github_username': '', 'team_name': '', 'employee_type': '', 'slack_id': '',
                              'role_name': '', 'updated_at:UNQUOTED': 0, 'foo': 'bar'})

        test_user2 = User(email='*****@*****.**',
                          foo='bar',
                          is_active=False,
                          do_not_update_empty_attribute=True)

        self.assertDictEqual(neo4_serializer.serialize_node(test_user2.create_next_node()),
                             {'KEY': '*****@*****.**', 'LABEL': 'User', 'email': '*****@*****.**', 'foo': 'bar'})
示例#2
0
class TestUser(unittest.TestCase):
    def setUp(self):
        # type: () -> None
        super(TestUser, self).setUp()
        self.user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe')

    def test_get_user_model_key(self):
        # type: () -> None
        user_email = User.get_user_model_key(email=self.user.email)
        self.assertEquals(user_email, '{email}'.format(email='*****@*****.**'))

    def test_create_nodes(self):
        # type: () -> None
        nodes = self.user.create_nodes()
        self.assertEquals(len(nodes), 1)

    def test_create_node_additional_attr(self):
        test_user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe',
                         enable_notify=True)
        nodes = test_user.create_nodes()
        self.assertEqual(nodes[0]['email'], '*****@*****.**')
        self.assertEqual(nodes[0]['role_name'], 'swe')
        self.assertTrue(nodes[0]['enable_notify'])

    def test_create_relation(self):
        # type: () -> None
        relations = self.user.create_relation()
        self.assertEquals(len(relations), 1)

        start_key = '{email}'.format(email='*****@*****.**')
        end_key = '{email}'.format(email='*****@*****.**')

        relation = {
            RELATION_START_KEY: start_key,
            RELATION_START_LABEL: User.USER_NODE_LABEL,
            RELATION_END_KEY: end_key,
            RELATION_END_LABEL: User.USER_NODE_LABEL,
            RELATION_TYPE: User.USER_MANAGER_RELATION_TYPE,
            RELATION_REVERSE_TYPE: User.MANAGER_USER_RELATION_TYPE
        }

        self.assertTrue(relation in relations)
class TestUser(unittest.TestCase):

    def setUp(self) -> None:
        super(TestUser, self).setUp()
        self.user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe')

    def test_get_user_model_key(self) -> None:
        user_email = User.get_user_model_key(email=self.user.email)
        self.assertEqual(user_email, '*****@*****.**')

    def test_create_nodes(self) -> None:
        nodes = self.user.create_nodes()
        self.assertEqual(len(nodes), 1)

    def test_create_node_additional_attr(self) -> None:
        test_user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe',
                         enable_notify=True)
        nodes = test_user.create_nodes()
        serialized_node = neo4_serializer.serialize_node(nodes[0])
        self.assertEqual(serialized_node['email'], '*****@*****.**')
        self.assertEqual(serialized_node['role_name'], 'swe')
        self.assertTrue(serialized_node['enable_notify:UNQUOTED'])

    def test_create_node_additional_attr_neptune(self) -> None:
        test_user = User(first_name='test_first',
                         last_name='test_last',
                         name='test_first test_last',
                         email='*****@*****.**',
                         github_username='******',
                         team_name='test_team',
                         employee_type='FTE',
                         manager_email='*****@*****.**',
                         slack_id='slack',
                         is_active=True,
                         updated_at=1,
                         role_name='swe',
                         enable_notify=True)
        nodes = test_user.create_nodes()
        serialized_node = neptune_serializer.convert_node(nodes[0])
        self.assertEqual(serialized_node['email:String(single)'], '*****@*****.**')
        self.assertEqual(serialized_node['role_name:String(single)'], 'swe')
        self.assertTrue(serialized_node['enable_notify:Bool(single)'])

    def test_create_relation(self) -> None:
        relations = self.user.create_relation()
        self.assertEqual(len(relations), 1)

        start_key = '*****@*****.**'
        end_key = '*****@*****.**'

        expected_relation = {
            RELATION_START_KEY: start_key,
            RELATION_START_LABEL: User.USER_NODE_LABEL,
            RELATION_END_KEY: end_key,
            RELATION_END_LABEL: User.USER_NODE_LABEL,
            RELATION_TYPE: User.USER_MANAGER_RELATION_TYPE,
            RELATION_REVERSE_TYPE: User.MANAGER_USER_RELATION_TYPE
        }

        self.assertTrue(expected_relation, neo4_serializer.serialize_relationship(relations[0]))

    def test_create_relation_neptune(self) -> None:
        relations = self.user.create_relation()

        serialized = neptune_serializer.convert_relationship(relations[0])

        start_key = '{email}'.format(email='*****@*****.**')
        end_key = '{email}'.format(email='*****@*****.**')

        expected = [
            {
                NEPTUNE_HEADER_ID: "{from_vertex_id}_{to_vertex_id}_{label}".format(
                    from_vertex_id=start_key,
                    to_vertex_id=end_key,
                    label=User.USER_MANAGER_RELATION_TYPE
                ),
                NEPTUNE_RELATIONSHIP_HEADER_FROM: start_key,
                NEPTUNE_RELATIONSHIP_HEADER_TO: end_key,
                NEPTUNE_HEADER_LABEL: User.USER_MANAGER_RELATION_TYPE,
                NEPTUNE_LAST_EXTRACTED_AT_RELATIONSHIP_PROPERTY_NAME_BULK_LOADER_FORMAT: ANY,
                NEPTUNE_CREATION_TYPE_RELATIONSHIP_PROPERTY_NAME_BULK_LOADER_FORMAT: NEPTUNE_CREATION_TYPE_JOB
            },
            {
                NEPTUNE_HEADER_ID: "{from_vertex_id}_{to_vertex_id}_{label}".format(
                    from_vertex_id=end_key,
                    to_vertex_id=start_key,
                    label=User.MANAGER_USER_RELATION_TYPE
                ),
                NEPTUNE_RELATIONSHIP_HEADER_FROM: end_key,
                NEPTUNE_RELATIONSHIP_HEADER_TO: start_key,
                NEPTUNE_HEADER_LABEL: User.MANAGER_USER_RELATION_TYPE,
                NEPTUNE_LAST_EXTRACTED_AT_RELATIONSHIP_PROPERTY_NAME_BULK_LOADER_FORMAT: ANY,
                NEPTUNE_CREATION_TYPE_RELATIONSHIP_PROPERTY_NAME_BULK_LOADER_FORMAT: NEPTUNE_CREATION_TYPE_JOB
            }
        ]

        self.assertListEqual(serialized, expected)

    def test_not_including_empty_attribute(self) -> None:
        test_user = User(email='*****@*****.**',
                         foo='bar')

        self.assertDictEqual(neo4_serializer.serialize_node(test_user.create_next_node()),
                             {'KEY': '*****@*****.**', 'LABEL': 'User', 'email': '*****@*****.**',
                              'is_active:UNQUOTED': True, 'first_name': '', 'last_name': '', 'full_name': '',
                              'github_username': '', 'team_name': '', 'employee_type': '', 'slack_id': '',
                              'role_name': '', 'updated_at:UNQUOTED': 0, 'foo': 'bar'})

        test_user2 = User(email='*****@*****.**',
                          foo='bar',
                          is_active=False,
                          do_not_update_empty_attribute=True)

        self.assertDictEqual(neo4_serializer.serialize_node(test_user2.create_next_node()),
                             {'KEY': '*****@*****.**', 'LABEL': 'User', 'email': '*****@*****.**', 'foo': 'bar'})