Ejemplo n.º 1
0
 def on_referenced(dsym_file):
     app_info = version_build_from_data(self.data)
     if app_info is not None:
         dsym_app = DSymApp.objects.create_or_update_app(
             sync_id=None,
             app_id=app_info.id,
             project=self.project,
             data={'name': app_info.name},
             platform=DSymPlatform.APPLE,
         )
         version_dsym_file, created = VersionDSymFile.objects.get_or_create(
             dsym_file=dsym_file,
             dsym_app=dsym_app,
             version=app_info.version,
             build=app_info.build,
         )
Ejemplo n.º 2
0
 def on_referenced(dsym_file):
     app_info = version_build_from_data(self.data)
     if app_info is not None:
         dsym_app = DSymApp.objects.create_or_update_app(
             sync_id=None,
             app_id=app_info.id,
             project=self.project,
             data={'name': app_info.name},
             platform=DSymPlatform.APPLE,
         )
         version_dsym_file, created = VersionDSymFile.objects.get_or_create(
             dsym_file=dsym_file,
             dsym_app=dsym_app,
             version=app_info.version,
             build=app_info.build,
         )
Ejemplo n.º 3
0
    def preprocess_step(self, processing_task):
        if not self.available:
            return False

        referenced_images = set(
            pf.data['obj_uuid'] for pf in processing_task.iter_processable_frames(self)
            if pf.cache_value is None and pf.data['obj_uuid'] is not None
        )

        app_info = version_build_from_data(self.data)
        if app_info is not None:
            def on_referenced(dsym_file):
                dsym_app = DSymApp.objects.create_or_update_app(
                    sync_id=None,
                    app_id=app_info.id,
                    project=self.project,
                    data={'name': app_info.name},
                    platform=DSymPlatform.APPLE,
                    no_fetch=True
                )
                try:
                    with transaction.atomic():
                        version_dsym_file, created = VersionDSymFile.objects.get_or_create(
                            dsym_file=dsym_file,
                            version=app_info.version,
                            build=app_info.build,
                            defaults=dict(dsym_app=dsym_app),
                        )
                except IntegrityError:
                    # XXX: this can currently happen because we only
                    # support one app per dsym file.  Since this can
                    # happen in some cases anyways we ignore it.
                    pass
        else:
            on_referenced = None

        self.sym = Symbolizer(
            self.project,
            self.object_lookup,
            referenced_images=referenced_images,
            on_dsym_file_referenced=on_referenced
        )

        if options.get('symbolserver.enabled'):
            self.fetch_system_symbols(processing_task)
Ejemplo n.º 4
0
    def preprocess_step(self, processing_task):
        if not self.available:
            return False

        referenced_images = set(
            pf.data['obj_uuid']
            for pf in processing_task.iter_processable_frames(self)
            if pf.cache_value is None and pf.data['obj_uuid'] is not None)

        app_info = version_build_from_data(self.data)
        if app_info is not None:

            def on_referenced(dsym_file):
                dsym_app = DSymApp.objects.create_or_update_app(
                    sync_id=None,
                    app_id=app_info.id,
                    project=self.project,
                    data={'name': app_info.name},
                    platform=DSymPlatform.APPLE,
                    no_fetch=True)
                try:
                    with transaction.atomic():
                        version_dsym_file, created = VersionDSymFile.objects.get_or_create(
                            dsym_file=dsym_file,
                            version=app_info.version,
                            build=app_info.build,
                            defaults=dict(dsym_app=dsym_app),
                        )
                except IntegrityError:
                    # XXX: this can currently happen because we only
                    # support one app per dsym file.  Since this can
                    # happen in some cases anyways we ignore it.
                    pass
        else:
            on_referenced = None

        self.sym = Symbolizer(self.project,
                              self.object_lookup,
                              arch=self.arch,
                              referenced_images=referenced_images,
                              on_dsym_file_referenced=on_referenced)

        if options.get('symbolserver.enabled'):
            self.fetch_system_symbols(processing_task)
Ejemplo n.º 5
0
 def on_referenced(dsym_file):
     app_info = version_build_from_data(self.data)
     if app_info is not None:
         dsym_app = DSymApp.objects.create_or_update_app(
             sync_id=None,
             app_id=app_info.id,
             project=self.project,
             data={'name': app_info.name},
             platform=DSymPlatform.APPLE,
         )
         try:
             with transaction.atomic():
                 version_dsym_file, created = VersionDSymFile.objects.get_or_create(
                     dsym_file=dsym_file,
                     version=app_info.version,
                     build=app_info.build,
                     defaults=dict(dsym_app=dsym_app),
                 )
         except IntegrityError:
             # XXX: this can currently happen because we only
             # support one app per dsym file.  Since this can
             # happen in some cases anyways we ignore it.
             pass
Ejemplo n.º 6
0
 def on_referenced(dsym_file):
     app_info = version_build_from_data(self.data)
     if app_info is not None:
         dsym_app = DSymApp.objects.create_or_update_app(
             sync_id=None,
             app_id=app_info.id,
             project=self.project,
             data={'name': app_info.name},
             platform=DSymPlatform.APPLE,
         )
         try:
             with transaction.atomic():
                 version_dsym_file, created = VersionDSymFile.objects.get_or_create(
                     dsym_file=dsym_file,
                     version=app_info.version,
                     build=app_info.build,
                     defaults=dict(dsym_app=dsym_app),
                 )
         except IntegrityError:
             # XXX: this can currently happen because we only
             # support one app per dsym file.  Since this can
             # happen in some cases anyways we ignore it.
             pass
Ejemplo n.º 7
0
def test_version_build_from_data():

    app_info = version_build_from_data(
        {
            'contexts': {
                'app': {
                    'app_build': "2",
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                    'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7",
                    'app_version': "1.0",
                    'app_identifier': "com.rokkincat.SentryExample",
                    'app_name': "SwiftExample",
                    'app_start_time': "2017-03-28T15:14:01Z",
                    'type': "app",
                    'build_type': "simulator"
                }
            }
        }
    )
    assert app_info.version == '1.0'
    assert app_info.build == '2'
    assert app_info.name == 'SwiftExample'
    assert app_info.id == 'com.rokkincat.SentryExample'

    app_info = version_build_from_data(
        {
            'contexts': {
                'app': {
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                    'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7",
                    'app_version': "1.0",
                    'app_identifier': "com.rokkincat.SentryExample",
                    'app_name': "SwiftExample",
                    'app_start_time': "2017-03-28T15:14:01Z",
                    'type': "app",
                    'build_type': "simulator"
                }
            }
        }
    )
    assert app_info is None

    app_info = version_build_from_data(
        {
            'contexts': {
                'app': {
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                    'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7",
                    'app_identifier': "com.rokkincat.SentryExample",
                    'app_name': "SwiftExample",
                    'app_start_time': "2017-03-28T15:14:01Z",
                    'type': "app",
                    'build_type': "simulator"
                }
            }
        }
    )
    assert app_info is None

    app_info = version_build_from_data(
        {
            'contexts': {
                'bal': {
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                }
            }
        }
    )
    assert app_info is None
Ejemplo n.º 8
0
def test_version_build_from_data():

    app_info = version_build_from_data(
        {
            'contexts': {
                'app': {
                    'app_build': "2",
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                    'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7",
                    'app_version': "1.0",
                    'app_identifier': "com.rokkincat.SentryExample",
                    'app_name': "SwiftExample",
                    'app_start_time': "2017-03-28T15:14:01Z",
                    'type': "app",
                    'build_type': "simulator"
                }
            }
        }
    )
    assert app_info.version == '1.0'
    assert app_info.build == '2'
    assert app_info.name == 'SwiftExample'
    assert app_info.id == 'com.rokkincat.SentryExample'

    app_info = version_build_from_data(
        {
            'contexts': {
                'app': {
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                    'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7",
                    'app_version': "1.0",
                    'app_identifier': "com.rokkincat.SentryExample",
                    'app_name': "SwiftExample",
                    'app_start_time': "2017-03-28T15:14:01Z",
                    'type': "app",
                    'build_type': "simulator"
                }
            }
        }
    )
    assert app_info is None

    app_info = version_build_from_data(
        {
            'contexts': {
                'app': {
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                    'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7",
                    'app_identifier': "com.rokkincat.SentryExample",
                    'app_name': "SwiftExample",
                    'app_start_time': "2017-03-28T15:14:01Z",
                    'type': "app",
                    'build_type': "simulator"
                }
            }
        }
    )
    assert app_info is None

    app_info = version_build_from_data(
        {
            'contexts': {
                'bal': {
                    'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598",
                }
            }
        }
    )
    assert app_info is None