示例#1
0
    def test_serialize_model_foreignkey(self):
        '''Testing whether the foreign key is serialized properly

        If foreign key has related object, the field should be serialized with
        the correct value.
        If there is no related object with the foreign key, both the field and
        the related object retrived via the relationship are set to None.
        '''

        from tcms.core.utils.xmlrpc import XMLRPCSerializer

        s = XMLRPCSerializer(model = self.testcase_with_default_tester_null)
        result = s.serialize_model()
        self.assertEqual(result['default_tester'], None)
        self.assertEqual(result['default_tester_id'], None)

        s = XMLRPCSerializer(model = self.testcase_with_default_tester_0)
        result = s.serialize_model()
        self.assertEqual(result['default_tester'], None)
        self.assertEqual(result['default_tester_id'], None)

        s = XMLRPCSerializer(model = self.testcase_with_valid_default_tester)
        result = s.serialize_model()
        self.assertNotEqual(result['default_tester'], None)
        self.assertNotEqual(result['default_tester_id'], None)
示例#2
0
def get_logs(request, case_run_id):
    """
    Description:  Get log links to TestCaseRun

    Params:     $case_run_id - Integer:
    """
    try:
        test_case_run = TestCaseRun.objects.get(pk=case_run_id)
    except ObjectDoesNotExist:
        raise

    links = LinkReference.get_from(test_case_run)
    s = XMLRPCSerializer(links)
    return s.serialize_queryset()
示例#3
0
    def test_serializer(self):
        serializer = XMLRPCSerializer(model=self.testcase)

        result = serializer.serialize_model()

        self.assertEqual(self.testcase.category.pk, result['category_id'])
        self.assertEqual(str(self.testcase.category), result['category'])

        component_pks = [c.pk for c in self.testcase.component.all()]
        component_pks.sort()
        result['component'].sort()
        self.assertEqual(component_pks, result['component'])

        self.assertEqual(self.testcase.alias, result['alias'])
        self.assertEqual(self.testcase.arguments, result['arguments'])
示例#4
0
    def test_serializer(self):
        serializer = XMLRPCSerializer(model=self.testcase)

        result = serializer.serialize_model()

        self.assertEqual(self.testcase.category.pk, result['category_id'])
        self.assertEqual(str(self.testcase.category), result['category'])

        component_pks = [c.pk for c in self.testcase.component.all()]
        component_pks.sort()
        result['component'].sort()
        self.assertEqual(component_pks, result['component'])

        self.assertEqual(self.testcase.alias, result['alias'])
        self.assertEqual(self.testcase.arguments, result['arguments'])
示例#5
0
    def _test_backward_compatible(self, model_class, object_pk):
        '''Ensure new serialization method to generate same data'''

        base_object = model_class.objects.get(pk=object_pk)
        sample_result = model_class.to_xmlrpc(query={'pk': object_pk})[0]
        base_result = XMLRPCSerializer(model=base_object).serialize_model()

        sample_fields = [name for name in sample_result.keys()]
        base_fields = [name for name in base_result.keys()]

        # Ensure fields are same.
        test_result = list(set(sample_fields) - set(base_fields))
        self.assertEqual(test_result, [])
        test_result = list(set(base_fields) - set(sample_fields))
        self.assertEqual(test_result, [])

        # Ensure values are same.
        for sample_field, sample_value in sample_result.iteritems():
            self.assertEqual(sample_value, base_result[sample_field])
    def _test_backward_compatible(self, model_class, object_pk):
        '''Ensure new serialization method to generate same data'''

        base_object = model_class.objects.get(pk=object_pk)
        sample_result = model_class.to_xmlrpc(query={'pk': object_pk})[0]
        base_result = XMLRPCSerializer(model=base_object).serialize_model()

        sample_fields = [name for name in sample_result.keys()]
        base_fields = [name for name in base_result.keys()]

        # Ensure fields are same.
        test_result = list(set(sample_fields) - set(base_fields))
        self.assertEqual(test_result, [])
        test_result = list(set(base_fields) - set(sample_fields))
        self.assertEqual(test_result, [])

        # Ensure values are same.
        for sample_field, sample_value in sample_result.iteritems():
            self.assertEqual(sample_value, base_result[sample_field])
示例#7
0
def get(request, case_id, plan_id):
    """
    Description: Used to load an existing test-case-plan from the database.

    Params:      $case_id - Integer: An integer representing the ID of the test case in the database.
                 $plan_id - Integer: An integer representing the ID of the test plan in the database.

    Returns:     A blessed TestCasePlan object hash

    Example:
    >>> TestCasePlan.get(81307, 3551)
    """
    tc = TestCase.objects.get(pk=case_id)
    tp = TestPlan.objects.get(pk=plan_id)
    tcp = TestCasePlan.objects.get(plan=tp, case=tc)
    return XMLRPCSerializer(model=tcp).serialize_model()
示例#8
0
def update(request, case_id, plan_id, sortkey):
    """
    Description: Updates the sortkey of the selected test-case-plan.

    Params:      $case_id - Integer: An integer representing the ID of the test case in the database.
                 $plan_id - Integer: An integer representing the ID of the test plan in the database.
                 $sortkey - Integer: An integer representing the ID of the sortkey in the database.

    Returns:     A blessed TestCasePlan object hash

    Example:
    # Update sortkey of selected test-case-plan to 450
    >>> TestCasePlan.update(81307, 3551, 450)
    """
    tc = TestCase.objects.get(pk=case_id)
    tp = TestPlan.objects.get(pk=plan_id)
    tcp = TestCasePlan.objects.get(plan=tp, case=tc)

    if isinstance(sortkey, int):
        tcp.sortkey = sortkey
        tcp.save(update_fields=['sortkey'])

    return XMLRPCSerializer(model=tcp).serialize_model()
示例#9
0
def get_test_cases(request, plan_id):
    """
    Description: Get the list of cases that this plan is linked to.

    Params:      $plan_id - Integer: An integer representing the ID of the plan in the database

    Returns:     Array: An array of test case object hashes.

    Example:
    >>> TestPlan.get_test_cases(137)
    """
    from tcms.apps.testcases.models import TestCase
    from tcms.apps.testplans.models import TestPlan
    from tcms.core.utils.xmlrpc import XMLRPCSerializer
    tp = TestPlan.objects.get(pk=plan_id)
    tcs = TestCase.objects.filter(plan=tp).order_by('testcaseplan__sortkey')
    serialized_tcs = XMLRPCSerializer(tcs.iterator()).serialize_queryset()
    if serialized_tcs:
        for serialized_tc in serialized_tcs:
            case_id = serialized_tc.get('case_id', None)
            tc = tcs.get(pk=case_id)
            tcp = tc.testcaseplan_set.get(plan=tp)
            serialized_tc['sortkey'] = tcp.sortkey
    return serialized_tcs
示例#10
0
def get_user_dict(user):
    u = XMLRPCSerializer(model=user)
    u = u.serialize_model()
    if u.get('password'):
        del u['password']
    return u
示例#11
0
def get_user_dict(user):
    u = XMLRPCSerializer(model=user)
    u = u.serialize_model()
    if u.get('password'):
        del u['password']
    return u
示例#12
0
 def serialize(self):
     """
     Convert the model for XMLPRC
     """
     s = XMLRPCSerializer(model = self)
     return s.serialize_model()
示例#13
0
 def to_xmlrpc(cls, query = {}):
     """
     Convert the query set for XMLRPC
     """
     s = XMLRPCSerializer(queryset = cls.objects.filter(**query))
     return s.serialize_queryset()
示例#14
0
 def serialize(self):
     """
     Convert the model for XMLPRC
     """
     s = XMLRPCSerializer(model=self)
     return s.serialize_model()
示例#15
0
 def to_xmlrpc(cls, query={}):
     """
     Convert the query set for XMLRPC
     """
     s = XMLRPCSerializer(queryset=cls.objects.filter(**query))
     return s.serialize_queryset()
示例#16
0
    """
    try:
        test_case_run = TestCaseRun.objects.get(pk=case_run_id)
    except ObjectDoesNotExist, error:
        raise

    try:
        LinkReference.unlink(link_id)
    except:
        raise

    return


def get_logs(request, case_run_id):
    """
    Description:  Get log links to TestCaseRun

    Params:     $case_run_id - Integer:
    """
    try:
        test_case_run = TestCaseRun.objects.get(pk=case_run_id)
    except ObjectDoesNotExist, error:
        raise

    links = LinkReference.get_from(test_case_run)
    s = XMLRPCSerializer(links)
    return s.serialize_queryset()