Пример #1
0
    def test_get_uof_blocks(self):
        ''' Set and get uof chart blocks.
        '''
        department = Department.create(name="W Police Department",
                                       short_name="WPD",
                                       load_defaults=False)

        # create & append chart blocks with the expected slugs
        uof_intro = ChartBlock(title="INTRO",
                               dataset="intros",
                               slug="uof-introduction")
        uof_ft = ChartBlock(title="FORCETYPE",
                            dataset="forcetype",
                            slug="uof-force-type")
        uof_bid = ChartBlock(title="BYASSIGNMENT",
                             dataset="bid",
                             slug="uof-by-inc-district")
        uof_od = ChartBlock(title="OFFICERDEMOS",
                            dataset="od",
                            slug="officer-demographics")
        uof_race = ChartBlock(title="RACE", dataset="race", slug="uof-race")
        department.chart_blocks.append(uof_intro)
        department.chart_blocks.append(uof_ft)
        department.chart_blocks.append(uof_bid)
        department.chart_blocks.append(uof_od)
        department.chart_blocks.append(uof_race)
        department.save()

        # verify that the blocks are returned in the expected structure
        uof_blocks = department.get_uof_blocks()
        assert uof_blocks['introduction'] == uof_intro
        assert uof_blocks['first-block'] == uof_ft
        assert uof_blocks['blocks'][0] == uof_bid
        assert uof_blocks['blocks'][1] == uof_od
        assert uof_blocks['blocks'][2] == uof_race
    def test_get_ois_blocks(self):
        ''' Set and get ois chart blocks.
        '''
        department = DepartmentFactory()
        department.save()

        # create & append chart blocks with the expected slugs
        ois_intro = ChartBlock(title="INTRO", dataset="intros", slug="ois-introduction")
        ois_bid = ChartBlock(title="BYINCDISTRICT", dataset="bid", slug="ois-by-inc-district")
        ois_wt = ChartBlock(title="WEAPONTYPE", dataset="weapontype", slug="ois-weapon-type")
        ois_od = ChartBlock(title="OFFICERDEMOS", dataset="od", slug="officer-demographics")
        ois_race = ChartBlock(title="RACE", dataset="race", slug="ois-race")
        department.chart_blocks.append(ois_intro)
        department.chart_blocks.append(ois_bid)
        department.chart_blocks.append(ois_wt)
        department.chart_blocks.append(ois_od)
        department.chart_blocks.append(ois_race)
        department.save()

        # verify that the blocks are returned in the expected structure
        ois_blocks = department.get_ois_blocks()
        assert ois_blocks['introduction'] == ois_intro
        assert ois_blocks['first-block'] == ois_bid
        assert ois_blocks['blocks'][0] == ois_wt
        assert ois_blocks['blocks'][1] == ois_od
        assert ois_blocks['blocks'][2] == ois_race
    def test_get_ois_blocks(self):
        ''' Set and get ois chart blocks.
        '''
        department = Department.create(name="SR Police Department",
                                       short_name="SRPD",
                                       load_defaults=False)

        # create & append chart blocks with the expected slugs
        ois_intro = ChartBlock(title="INTRO",
                               dataset="intros",
                               slug="ois-introduction")
        ois_bm = ChartBlock(title="BYMONTH", dataset="bm", slug="ois-by-month")
        ois_by = ChartBlock(title="BYTYPE",
                            dataset="bytype",
                            slug="ois-by-type")
        ois_bt = ChartBlock(title="BYTEAM",
                            dataset="byteam",
                            slug="ois-by-team")
        ois_od = ChartBlock(title="OFFICERDEMOS",
                            dataset="od",
                            slug="officer-demographics")
        department.chart_blocks.append(ois_intro)
        department.chart_blocks.append(ois_bm)
        department.chart_blocks.append(ois_by)
        department.chart_blocks.append(ois_bt)
        department.chart_blocks.append(ois_od)
        department.save()

        # verify that the blocks are returned in the expected structure
        ois_blocks = department.get_ois_blocks()
        assert ois_blocks['introduction'] == ois_intro
        assert ois_blocks['first-block'] == ois_bm
        assert ois_blocks['blocks'][0] == ois_by
        assert ois_blocks['blocks'][1] == ois_bt
        assert ois_blocks['blocks'][2] == ois_od
Пример #4
0
    def test_get_assaults_blocks(self):
        ''' Set and get ois chart blocks.
        '''
        department = Department.create(
            name="Inopportune Moment Police Department",
            short_name="IMPD",
            load_defaults=False)

        # create & append chart blocks with the expected slugs
        assault_intro = ChartBlock(title="INTRO",
                                   dataset="intros",
                                   slug="assaults-introduction")
        assault_bst = ChartBlock(title="BYINCDISTRICT",
                                 dataset="bst",
                                 slug="assaults-by-service-type")
        assault_bft = ChartBlock(title="WEAPONTYPE",
                                 dataset="bft",
                                 slug="assaults-by-force-type")
        assault_bo = ChartBlock(title="OFFICERDEMOS",
                                dataset="bo",
                                slug="assaults-by-officer")
        department.chart_blocks.append(assault_intro)
        department.chart_blocks.append(assault_bst)
        department.chart_blocks.append(assault_bft)
        department.chart_blocks.append(assault_bo)
        department.save()

        # verify that the blocks are returned in the expected structure
        assault_blocks = department.get_assaults_blocks()
        assert assault_blocks['introduction'] == assault_intro
        assert assault_blocks['first-block'] == assault_bst
        assert assault_blocks['blocks'][0] == assault_bft
        assert assault_blocks['blocks'][1] == assault_bo
    def test_get_ois_blocks(self):
        ''' Set and get ois chart blocks.
        '''
        department = Department.create(name="Blanket Police Department",
                                       short_name="BPD",
                                       load_defaults=False)

        # create & append chart blocks with the expected slugs
        ois_intro = ChartBlock(title="INTRO",
                               dataset="intros",
                               slug="ois-introduction")
        ois_bid = ChartBlock(title="BYASSIGNMENT",
                             dataset="bid",
                             slug="ois-by-assignment")
        ois_wt = ChartBlock(title="WEAPONTYPE",
                            dataset="weapontype",
                            slug="ois-weapon-type")
        ois_od = ChartBlock(title="OFFICERDEMOS",
                            dataset="od",
                            slug="officer-demographics")
        ois_race = ChartBlock(title="RACE", dataset="race", slug="ois-race")
        department.chart_blocks.append(ois_intro)
        department.chart_blocks.append(ois_bid)
        department.chart_blocks.append(ois_wt)
        department.chart_blocks.append(ois_od)
        department.chart_blocks.append(ois_race)
        department.save()

        # verify that the blocks are returned in the expected structure
        ois_blocks = department.get_ois_blocks()
        assert ois_blocks['introduction'] == ois_intro
        assert ois_blocks['first-block'] == ois_bid
        assert ois_blocks['blocks'][0] == ois_wt
        assert ois_blocks['blocks'][1] == ois_od
        assert ois_blocks['blocks'][2] == ois_race
Пример #6
0
    def test_get_complaint_blocks(self):
        ''' Set and get complaint chart blocks.
        '''
        department = Department.create(
            name="Innocent Marmot Police Department",
            short_name="IMPD",
            load_defaults=False)

        # create & append chart blocks with the expected slugs
        complaint_intro = ChartBlock(title="INTRO",
                                     dataset="intros",
                                     slug="complaints-introduction")
        complaint_bm = ChartBlock(title="BYMONTH",
                                  dataset="bymonth",
                                  slug="complaints-by-month")
        complaint_bya = ChartBlock(title="BYALLEGATION",
                                   dataset="bya",
                                   slug="complaints-by-allegation")
        complaint_byat = ChartBlock(title="BYALLEGATIONTYPE",
                                    dataset="byat",
                                    slug="complaints-by-allegation-type")
        complaint_bdis = ChartBlock(title="BYDISPOSITION",
                                    dataset="bdis",
                                    slug="complaints-by-finding")
        complaint_bpre = ChartBlock(title="BYPRECINCT",
                                    dataset="bpre",
                                    slug="complaints-by-precinct")
        complaint_od = ChartBlock(title="OFFICERDEMOS",
                                  dataset="od",
                                  slug="officer-demographics")
        complaint_bde = ChartBlock(title="BYDEMO",
                                   dataset="bde",
                                   slug="complaints-by-demographic")
        complaint_bof = ChartBlock(title="BYOFFICER",
                                   dataset="bof",
                                   slug="complaints-by-officer")

        department.chart_blocks.append(complaint_intro)
        department.chart_blocks.append(complaint_bm)
        department.chart_blocks.append(complaint_bya)
        department.chart_blocks.append(complaint_byat)
        department.chart_blocks.append(complaint_bdis)
        department.chart_blocks.append(complaint_bpre)
        department.chart_blocks.append(complaint_od)
        department.chart_blocks.append(complaint_bde)
        department.chart_blocks.append(complaint_bof)
        department.save()

        # verify that the blocks are returned in the expected structure
        complaint_blocks = department.get_complaint_blocks()
        assert complaint_blocks['introduction'] == complaint_intro
        assert complaint_blocks['first-block'] == complaint_bm
        assert complaint_blocks['blocks'][0] == complaint_bya
        assert complaint_blocks['blocks'][1] == complaint_byat
        assert complaint_blocks['blocks'][2] == complaint_bdis
        assert complaint_blocks['blocks'][3] == complaint_bpre
        assert complaint_blocks['blocks'][4] == complaint_od
        assert complaint_blocks['blocks'][5] == complaint_bde
        assert complaint_blocks['blocks'][6] == complaint_bof
Пример #7
0
    def test__multiple_get_uof_blocks(self):
        department = DepartmentFactory()
        department.save()

        uof_block = ChartBlock.create(title="Use of Force", dataset="use-of-force", slug="uof-slug", department_id=department.id)
        uof_type_of_call_block = ChartBlock.create(title="Use of Force", dataset="use-of-force", slug="uof-type-of-call", department_id=department.id)
        non_uof_block = ChartBlock.create(dataset="Complaints",title="complaints", slug="complaints-slug", department_id=department.id)

        uof_blocks = department.get_uof_blocks()

        assert uof_blocks["uof-slug"] == uof_block
        assert uof_blocks["uof-type-of-call"] == uof_type_of_call_block
        assert "non_uof_block" not in uof_blocks.keys()
Пример #8
0
    def test_get_complaint_schema_blocks(self):
        ''' Set and get complaint schema chart blocks.
        '''
        department = Department.create(name="IM Police Department", short_name="IMPD", load_defaults=False)

        # create & append chart blocks with the expected slugs
        complaint_intro = ChartBlock(title="INTRO", dataset="intros", slug="complaints-schema-introduction")
        complaint_id = ChartBlock(title="FIELDID", dataset="fid", slug="complaints-schema-field-id")
        complaint_od = ChartBlock(title="OCCURREDDATE", dataset="fod", slug="complaints-schema-field-occurred-date")
        complaint_div = ChartBlock(title="DIVISION", dataset="div", slug="complaints-schema-field-division")
        complaint_dis = ChartBlock(title="DISTRICT", dataset="dis", slug="complaints-schema-field-district")
        complaint_shift = ChartBlock(title="SHIFT", dataset="shift", slug="complaints-schema-field-shift")
        complaint_footer = ChartBlock(title="FOOTER", dataset="footer", slug="complaints-schema-footer")
        complaint_disclaimer = ChartBlock(title="DISCLAIMER", dataset="disclaimer", slug="complaints-schema-disclaimer")

        department.chart_blocks.append(complaint_intro)
        department.chart_blocks.append(complaint_id)
        department.chart_blocks.append(complaint_od)
        department.chart_blocks.append(complaint_div)
        department.chart_blocks.append(complaint_dis)
        department.chart_blocks.append(complaint_shift)
        department.chart_blocks.append(complaint_footer)
        department.chart_blocks.append(complaint_disclaimer)
        department.save()

        # verify that the blocks are returned in the expected structure
        complaint_blocks = department.get_complaint_schema_blocks()
        assert complaint_blocks['introduction'] == complaint_intro
        assert complaint_blocks['footer'] == complaint_footer
        assert complaint_blocks['disclaimer'] == complaint_disclaimer
        assert complaint_id in complaint_blocks['blocks']
        assert complaint_od in complaint_blocks['blocks']
        assert complaint_div in complaint_blocks['blocks']
        assert complaint_dis in complaint_blocks['blocks']
        assert complaint_shift in complaint_blocks['blocks']
Пример #9
0
    def test_get_assaults_schema_blocks(self):
        ''' Set and get assaults schema chart blocks.
        '''
        department = Department.create(name="IM Police Department", short_name="IMPD", load_defaults=False)

        # create & append chart blocks with the expected slugs
        assaults_intro = ChartBlock(title="INTRO", dataset="intros", slug="assaults-schema-introduction")
        assaults_fid = ChartBlock(title="FIELDID", dataset="fid", slug="assaults-schema-field-id")
        assaults_foi = ChartBlock(title="OCCURREDDATE", dataset="fod", slug="assaults-schema-field-officer-identifier")
        assaults_fst = ChartBlock(title="DIVISION", dataset="div", slug="assaults-schema-field-service-type")
        assaults_fft = ChartBlock(title="DISTRICT", dataset="dis", slug="assaults-schema-field-force-type")
        assaults_ffa = ChartBlock(title="SHIFT", dataset="shift", slug="assaults-schema-field-assignment")
        assaults_footer = ChartBlock(title="FOOTER", dataset="footer", slug="assaults-schema-footer")
        assaults_disclaimer = ChartBlock(title="DISCLAIMER", dataset="disclaimer", slug="assaults-schema-disclaimer")

        department.chart_blocks.append(assaults_intro)
        department.chart_blocks.append(assaults_fid)
        department.chart_blocks.append(assaults_foi)
        department.chart_blocks.append(assaults_fst)
        department.chart_blocks.append(assaults_fft)
        department.chart_blocks.append(assaults_ffa)
        department.chart_blocks.append(assaults_footer)
        department.chart_blocks.append(assaults_disclaimer)
        department.save()

        # verify that the blocks are returned in the expected structure
        assaults_blocks = department.get_assaults_schema_blocks()
        assert assaults_blocks['introduction'] == assaults_intro
        assert assaults_blocks['footer'] == assaults_footer
        assert assaults_blocks['disclaimer'] == assaults_disclaimer
        assert assaults_fid in assaults_blocks['blocks']
        assert assaults_foi in assaults_blocks['blocks']
        assert assaults_fst in assaults_blocks['blocks']
        assert assaults_fft in assaults_blocks['blocks']
        assert assaults_ffa in assaults_blocks['blocks']
    def test_add_chart_blocks(self):
        ''' Can add default chart blocks to multiple departments.
        '''
        department1 = Department.create(name="Spleen Police Department", short_name="SPD", load_defaults=False)
        department2 = Department.create(name="Random Police Department", short_name="RPD", load_defaults=False)

        mock_chart_blocks = [
            ChartBlock(title="Open Data Introduction", slug="introduction", dataset="introduction"),
            ChartBlock(title="Complaints By Year", slug="complaints-by-year", dataset="complaints"),
            ChartBlock(title="Complaints By Month", slug="complaints-by-month", dataset="complaints"),
            ChartBlock(title="Complaints By Allegation", slug="complaints-by-allegation", dataset="complaints"),
            ChartBlock(title="Complaints By Allegation Type", slug="complaints-by-allegation-type", dataset="complaints")
        ]

        with mock.patch.object(ChartBlockDefaults, 'defaults', mock_chart_blocks):
            add_new_blocks()

        assert len(department2.chart_blocks) == len(mock_chart_blocks)
        assert len(department1.chart_blocks) == len(mock_chart_blocks)
Пример #11
0
    def test_get_pursuits_blocks(self):
        ''' Set and get pursuit chart blocks.
        '''
        department = Department.create(name="SR Police Department", short_name="SRPD", load_defaults=False)

        # create & append chart blocks with the expected slugs
        pursuit_intro = ChartBlock(title="INTRO", dataset="intros", slug="pursuits-introduction")
        pursuit_bm = ChartBlock(title="BYMONTH", dataset="bymonth", slug="pursuits-by-month")
        pursuit_bt = ChartBlock(title="BYTEAM", dataset="byteam", slug="pursuits-by-team")
        pursuit_br = ChartBlock(title="BYREASON", dataset="byreason", slug="pursuits-by-reason")
        pursuit_bd = ChartBlock(title="BYDISTANCE", dataset="bydistance", slug="pursuits-by-distance")
        pursuit_bc = ChartBlock(title="BYCONCLUSION", dataset="byconclusion", slug="pursuits-by-conclusion")

        department.chart_blocks.append(pursuit_intro)
        department.chart_blocks.append(pursuit_bm)
        department.chart_blocks.append(pursuit_bt)
        department.chart_blocks.append(pursuit_br)
        department.chart_blocks.append(pursuit_bd)
        department.chart_blocks.append(pursuit_bc)
        department.save()

        # verify that the blocks are returned in the expected structure
        pursuit_blocks = department.get_pursuits_blocks()
        assert pursuit_blocks['introduction'] == pursuit_intro
        assert pursuit_blocks['first-block'] == pursuit_bm
        assert pursuit_blocks['blocks'][0] == pursuit_bt
        assert pursuit_blocks['blocks'][1] == pursuit_br
        assert pursuit_blocks['blocks'][2] == pursuit_bd
        assert pursuit_blocks['blocks'][3] == pursuit_bc
Пример #12
0
    def test_get_complaint_blocks(self):
        ''' Set and get complaint chart blocks.
        '''
        department = Department.create(name="SR Police Department", short_name="SRPD", load_defaults=False)

        # create & append chart blocks with the expected slugs
        complaint_intro = ChartBlock(title="INTRO", dataset="", slug="complaints-introduction")
        complaint_bm = ChartBlock(title="BYMONTH", dataset="", slug="complaints-by-month")
        complaint_bal = ChartBlock(title="BYALLEGATION", dataset="", slug="complaints-by-allegation")
        complaint_bd = ChartBlock(title="BYDISPOSITION", dataset="", slug="complaints-by-disposition")
        complaint_bt = ChartBlock(title="BYTEAM", dataset="", slug="complaints-by-team")
        complaint_od = ChartBlock(title="OFFICERDEMOS", dataset="", slug="officer-demographics")

        department.chart_blocks.append(complaint_intro)
        department.chart_blocks.append(complaint_bm)
        department.chart_blocks.append(complaint_bal)
        department.chart_blocks.append(complaint_bd)
        department.chart_blocks.append(complaint_bt)
        department.chart_blocks.append(complaint_od)
        department.save()

        # verify that the blocks are returned in the expected structure
        complaint_blocks = department.get_complaint_blocks()
        assert complaint_blocks['introduction'] == complaint_intro
        assert complaint_blocks['first-block'] == complaint_bm
        assert complaint_blocks['blocks'][0] == complaint_bal
        assert complaint_blocks['blocks'][1] == complaint_bd
        assert complaint_blocks['blocks'][2] == complaint_bt
        assert complaint_blocks['blocks'][3] == complaint_od