running tests against a json string python

I'm currently trying to run a number of tests against a JSON string there are however a few difficulties that I am encountering.

Here's what I have so far.

class PinpyTests(jsonstr, campaign):

    data = json.loads(jsonstr)
    test = False

    def dwellTest(self):
        if self.data.get('dwellTime', None) is not None:
            if self.data.get('dwellTime') >= self.campaign.needed_dwellTime:
                # Result matches, dwell time test passed.
                self.test = True

    def proximityTest(self):
        if self.data.get('proximity', None) is not None:
            if self.data.get('proximity') == self.campaign.needed_proximity:
                # Result matches, proximity passed.
                self.test = True 

Basically, I need the tests to be run, only if they exist in the json string. so if proximity is present in the string, it will run the proximity test, etc etc. (there could be more tests, not just these two)

The issue seems to arise when both tests are present, and need to both return true. If they both return true then the test has passed and the class can return true, However, if dwell fails, and proximity passes I still need it to fail because not all the tests pass. (where proximity makes it pass). I'm slightly baffled as how to continue.


For starters, your class is defined incorrectly. What you probably want is an __init__ function. To achieve your desired result, I would suggest adding a testAll method that checks for each test in your json then runs that test.

class PinpyTests(Object):
    test = False

    def __init__(self, jsonstr, campaign):
        self.data = json.loads(jsonstr)
        self.campaign = campaign

    def testAll(self):
        passed = True
        if self.data.get('dwellTime') is not None:
            passed = passed and self.dwellTest()
        if self.data.get('proximity') is not None:
            passed = passed and self.proximityTest()
        return passed

    def dwellTest(self):
        if self.data.get('dwellTime') >= self.campaign.needed_dwellTime:
            # Result matches, dwell time test passed.
            return True
        return False

    def proximityTest(self):
        if self.data.get('proximity') == self.campaign.needed_proximity:
            # Result matches, proximity passed.
            return True
        return False
链接地址: http://www.djcxy.com/p/14218.html

上一篇: 如何提高jqPlot parseOptions / jquery.extend性能

下一篇: 针对json字符串python运行测试