Exemple #1
0
    def test_to_dict(self):
        exp_issues = stats_domain.ExplorationIssues(
            'exp_id1', [{
                'issue_id': 'EarlyQuit',
                'issue_customization_args': {
                    'state_name': {
                        'value': 'state_name1'
                    },
                    'time_spent_in_exp_in_msecs': {
                        'value': 200
                    }
                },
                'playthrough_ids': ['playthrough_id1']
            }])

        exp_issues_dict = exp_issues.to_dict()

        self.assertEqual(exp_issues_dict['id'], 'exp_id1')
        self.assertEqual(exp_issues_dict['unresolved_issues'],
                         [{
                             'issue_id': 'EarlyQuit',
                             'issue_customization_args': {
                                 'state_name': {
                                     'value': 'state_name1'
                                 },
                                 'time_spent_in_exp_in_msecs': {
                                     'value': 200
                                 }
                             },
                             'playthrough_ids': ['playthrough_id1']
                         }])
Exemple #2
0
def get_exp_issues_from_model(exp_issues_model):
    """Gets an ExplorationIssues domain object from an ExplorationIssuesModel
    instance.

    Args:
        exp_issues_model: ExplorationIssuesModel. Exploration issues model in
            datastore.

    Returns:
        ExplorationIssues. The domain object for exploration issues.
    """
    unresolved_issues = []
    for unresolved_issue_dict in exp_issues_model.unresolved_issues:
        _migrate_to_latest_issue_schema(copy.deepcopy(unresolved_issue_dict))
        unresolved_issues.append(
            stats_domain.ExplorationIssue.from_dict(unresolved_issue_dict))
    return stats_domain.ExplorationIssues(exp_issues_model.id,
                                          unresolved_issues)
Exemple #3
0
    def test_validate(self):
        exp_issues = stats_domain.ExplorationIssues(
            'exp_id1', [{
                'issue_id': 'EarlyQuit',
                'issue_customization_args': {
                    'state_name': {
                        'value': 'state_name1'
                    },
                    'time_spent_in_exp_in_msecs': {
                        'value': 200
                    }
                },
                'playthrough_ids': ['playthrough_id1']
            }])
        exp_issues.validate()

        # Change ID to int.
        exp_issues.id = 5
        with self.assertRaisesRegexp(
                utils.ValidationError,
            ('Expected ID to be a string, received %s' % (type(5)))):
            exp_issues.validate()

        # Change unresolved_issues list.
        exp_issues.id = 'exp_id1'
        exp_issues.unresolved_issues = [{
            'issue_id': 'EarlyQuit',
            'issue_customization_args': {
                'state_name': {
                    'value': 'state_name1'
                },
                'time_spent_in_exp_in_msecs': {
                    'value': 200
                }
            },
        }]
        with self.assertRaisesRegexp(
                utils.ValidationError,
            ('KeyError in an element of unresolved_issues')):
            exp_issues.validate()