Exemple #1
0
    def test_response(self):
        now = datetime.utcnow()
        elapsed_seconds = get_sec_since_midnight(now)
        root = Response(
            date=now,
            apps_list=[App(updatecheck=Updatecheck_negative(), **self.app_attr)])

        self.assertXmlNode(root, tag='response', text=None)
        self.assertXpathsExist(root, ('./daystart',))
        self.assertXpathsExist(root, ('./app',))
        self.assertXpathsExist(root, ('./daystart[@elapsed_seconds="%s"]' % elapsed_seconds,))
Exemple #2
0
def build_response(request, pretty_print=True, ip=None):
    obj = parse_request(request)
    tasks.collect_statistics.apply_async(args=(request, ip), queue='transient')
    userid = obj.get('userid')
    apps = obj.findall('app')
    apps_list = reduce(partial(on_app, os=obj.os, userid=userid), apps, [])
    response = Response(apps_list, date=now())
    return etree.tostring(response,
                          pretty_print=pretty_print,
                          xml_declaration=True,
                          encoding='UTF-8')
Exemple #3
0
    def test_valid_response_event(self):
        response = Response(
            date=datetime(year=2014, month=1, day=1, hour=15, minute=45, second=54),
            apps_list=[App(
                app_id='{8A69D345-D564-463C-AFF1-A69D9E530F96}',
                status='ok',
                events=[Event(), Event(), Event()]
            )]
        )

        self.assertXmlValidXSchema(response, filename=RESPONSE_XSD_FILE)
        self.assertXmlEquivalentOutputs(etree.tostring(response), fixtures.response_event)
Exemple #4
0
    def test_valid_response_negative(self):
        response = Response(
            server='prod',
            protocol='3.0',
            date=datetime(2014, 1, 1, hour=15, minute=41, second=48),  # 56508 sec
            apps_list=[
                App('{430FD4D0-B729-4F61-AA34-91526481799D}', updatecheck=Updatecheck_negative(), ping=True),
                App('{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', updatecheck=Updatecheck_negative(), ping=True),
            ]
        )

        self.assertXmlValidXSchema(response, filename=RESPONSE_XSD_FILE)
        self.assertXmlEquivalentOutputs(etree.tostring(response), fixtures.response_update_check_negative)
Exemple #5
0
    def test_valid_response_data(self):
        response = Response(
            date=datetime(year=2014, month=1, day=1, hour=15, minute=45, second=54),
            apps_list=[App(
                app_id='{8A69D345-D564-463C-AFF1-A69D9E530F96}',
                status='ok',
                data_list=[
                    Data('install', index='verboselogging', text='app-specific values here'),
                    Data('untrusted')
                ]
            )]
        )

        self.assertXmlValidXSchema(response, filename=RESPONSE_XSD_FILE)
        self.assertXmlEquivalentOutputs(etree.tostring(response), fixtures.response_data_doc)
Exemple #6
0
    def test_valid_response_event(self):
        response = Response(
            date=datetime(year=2014,
                          month=1,
                          day=1,
                          hour=15,
                          minute=45,
                          second=54),
            apps_list=[
                App(app_id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}',
                    status='ok',
                    events=[Event(), Event(), Event()])
            ])

        self.assertXmlValidXSchema(response, filename=RESPONSE_XSD_FILE)
        self.assertXmlEquivalentOutputs(etree.tostring(response),
                                        fixtures.response_event)
Exemple #7
0
    def test_valid_response_positive(self):
        updatecheck = Updatecheck_positive(
            urls=[
                'http://cache.pack.google.com/edgedl/chrome/install/782.112/'
            ],
            manifest=Manifest(version='13.0.782.112',
                              packages=Packages([
                                  Package(
                                      name='chrome_installer.exe',
                                      required='true',
                                      size='23963192',
                                      hash='VXriGUVI0TNqfLlU02vBel4Q3Zo=',
                                  )
                              ]),
                              actions=Actions([
                                  Action(event='install',
                                         arguments='--do-not-launch-chrome',
                                         run='chrome_installer.exe'),
                                  Action(event='postinstall',
                                         version='13.0.782.112',
                                         onsuccess='exitsilentlyonlaunchcmd'),
                              ])))
        app = App(
            '{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}',
            status='ok',
            updatecheck=updatecheck,
            ping=True,
        )

        response = Response(
            server='prod',
            protocol='3.0',
            date=datetime(2014, 1, 1, hour=15, minute=41,
                          second=48),  # 56508 sec
            apps_list=[
                App('{430FD4D0-B729-4F61-AA34-91526481799D}',
                    status='ok',
                    ping=True,
                    updatecheck=Updatecheck_negative()),
                app,
            ])

        self.assertXmlValidXSchema(response, filename=RESPONSE_XSD_FILE)
        self.assertXmlEquivalentOutputs(
            etree.tostring(response), fixtures.response_update_check_positive)