Exemplo n.º 1
0
    def testHistoricalAddTableNumber(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
            <mx:leader>00000nw  a2200000n  4500</mx:leader>
            <mx:controlfield tag="008">091203baaaaaah</mx:controlfield>
            <mx:datafield tag="084" ind2=" " ind1="0">
                <mx:subfield code="a">ddc</mx:subfield>
                <mx:subfield code="c">23no</mx:subfield>
                <mx:subfield code="e">nob</mx:subfield>
            </mx:datafield>
            <mx:datafield tag="153" ind2=" " ind1=" ">
                <mx:subfield code="a">820.1</mx:subfield>
                <mx:subfield code="c">828</mx:subfield>
                <mx:subfield code="y">1</mx:subfield>
                <mx:subfield code="a">7</mx:subfield>
                <mx:subfield code="e">820</mx:subfield>
                <mx:subfield code="j">1800-1837</mx:subfield>
                <mx:subfield code="9">ess=reb</mx:subfield>
                <mx:subfield code="9">ess=rhb</mx:subfield>
            </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.record_type == Constants.TABLE_RECORD
        assert rec.number_type == Constants.SINGLE_NUMBER
        assert rec.display is False
        assert rec.synthesized is False
Exemplo n.º 2
0
    def testComplexTableEntryWithUndocumentStuff(self):
        # Test that none of the extra stuff (after $f) leaks into the notation
        element = Element('''
            <mx:datafield tag="153" ind2=" " ind1=" " xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:subfield code="z">1</mx:subfield>
                <mx:subfield code="a">0926</mx:subfield>
                <mx:subfield code="z">1</mx:subfield>
                <mx:subfield code="e">0923</mx:subfield>
                <mx:subfield code="f">0928</mx:subfield>
                <mx:subfield code="j">Samlingsbiografier om personer inndelt etter diverse sosiale kjennetegn</mx:subfield>
                <mx:subfield code="i">[tidligere</mx:subfield>
                <mx:subfield code="z">1</mx:subfield>
                <mx:subfield code="x">0922</mx:subfield>
                <mx:subfield code="i">,</mx:subfield>
                <mx:subfield code="z">1</mx:subfield>
                <mx:subfield code="x">0923</mx:subfield>
                <mx:subfield code="i">]</mx:subfield>
                <mx:subfield code="9">ess=ten</mx:subfield>
                <mx:subfield code="9">ess=eh</mx:subfield>
                <mx:subfield code="9">ess=nrl</mx:subfield>
              </mx:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table == '1'
        assert notation == '1--0926'
        assert is_top_concept is False
        assert parent_notation == '1--0923-0928'
        assert caption == u'Samlingsbiografier om personer inndelt etter diverse sosiale kjennetegn'
Exemplo n.º 3
0
    def testSynthesizedNumberSpan(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
          <mx:leader>00000nw  a2200000n  4500</mx:leader>
          <mx:controlfield tag="008">091203abdaaaba</mx:controlfield>
          <mx:datafield tag="084" ind2=" " ind1="0">
            <mx:subfield code="a">ddc</mx:subfield>
            <mx:subfield code="c">23no</mx:subfield>
            <mx:subfield code="e">nob</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="153" ind2=" " ind1=" ">
            <mx:subfield code="a">133.01</mx:subfield>
            <mx:subfield code="c">133.09</mx:subfield>
            <mx:subfield code="e">133</mx:subfield>
            <mx:subfield code="j">Generell forminndeling</mx:subfield>
            <mx:subfield code="9">ess=en</mx:subfield>
            <mx:subfield code="9">ess=eh</mx:subfield>
          </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.record_type == Constants.SCHEDULE_RECORD
        assert rec.number_type == Constants.NUMBER_SPAN
        assert rec.display is True
        assert rec.synthesized is True
Exemplo n.º 4
0
    def testTableAddTableEntry(self):
        element = Element('''
            <mx:datafield tag="153" ind2=" " ind1=" " xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:subfield code="z">3B</mx:subfield>
                <mx:subfield code="a">81</mx:subfield>
                <mx:subfield code="c">89</mx:subfield>
                <mx:subfield code="y">1</mx:subfield>
                <mx:subfield code="a">02</mx:subfield>
                <mx:subfield code="z">3B</mx:subfield>
                <mx:subfield code="e">81</mx:subfield>
                <mx:subfield code="f">89</mx:subfield>
                <mx:subfield code="j">Anekdoter, epigrammer, graffiti, vitser, vittigheter, sitater, gåter, tungekrøllere</mx:subfield>
                <mx:subfield code="9">ess=ren</mx:subfield>
                <mx:subfield code="9">ess=reh</mx:subfield>
            </mx:datafield>

        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table == '3B'
        assert notation == '3B--81-89:02'
        assert is_top_concept is False
        assert parent_notation == '3B--81-89'
        assert caption == u'Anekdoter, epigrammer, graffiti, vitser, vittigheter, sitater, gåter, tungekrøllere'
Exemplo n.º 5
0
    def testSynthesizedNumberComponentsIncludingAddTable(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
          <mx:leader>00000nw  a2200000n  4500</mx:leader>
          <mx:controlfield tag="001">ocd00117858</mx:controlfield>
          <mx:controlfield tag="003">OCoLC-D</mx:controlfield>
          <mx:controlfield tag="005">20150910004647.0</mx:controlfield>
          <mx:controlfield tag="008">091203aaaaaabb</mx:controlfield>
          <mx:datafield tag="040" ind2=" " ind1=" ">
            <mx:subfield code="a">OCLCD</mx:subfield>
            <mx:subfield code="b">nob</mx:subfield>
            <mx:subfield code="c">OCLCD</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="084" ind2=" " ind1="0">
            <mx:subfield code="a">ddc</mx:subfield>
            <mx:subfield code="c">23no</mx:subfield>
            <mx:subfield code="e">nob</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="153" ind2=" " ind1=" ">
            <mx:subfield code="a">032.020993</mx:subfield>
            <mx:subfield code="e">032.02</mx:subfield>
            <mx:subfield code="9">ess=ien</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="765" ind2=" " ind1="0">
            <mx:subfield code="b">032.0209</mx:subfield>
            <mx:subfield code="z">1</mx:subfield>
            <mx:subfield code="a">093</mx:subfield>
            <mx:subfield code="c">099</mx:subfield>
            <mx:subfield code="z">2</mx:subfield>
            <mx:subfield code="s">93</mx:subfield>
            <mx:subfield code="u">032.020993</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="765" ind2=" " ind1="0">
            <mx:subfield code="b">032.02</mx:subfield>
            <mx:subfield code="z">1</mx:subfield>
            <mx:subfield code="s">09</mx:subfield>
            <mx:subfield code="u">032.0209</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="765" ind2=" " ind1="0">
            <mx:subfield code="b">032</mx:subfield>
            <mx:subfield code="a">032</mx:subfield>
            <mx:subfield code="a">031</mx:subfield>
            <mx:subfield code="c">039</mx:subfield>
            <mx:subfield code="w">031</mx:subfield>
            <mx:subfield code="c">039</mx:subfield>
            <mx:subfield code="y">1</mx:subfield>
            <mx:subfield code="t">02</mx:subfield>
            <mx:subfield code="u">032.02</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="750" ind2="7" ind1=" ">
            <mx:subfield code="a">Engelske almanakker</mx:subfield>
            <mx:subfield code="z">New Zealand</mx:subfield>
            <mx:subfield code="0">(OCoLC-D)792f96bb-142c-43c6-a20e-ed5ed2088388</mx:subfield>
            <mx:subfield code="2">ddcri</mx:subfield>
            <mx:subfield code="9">ps=EO</mx:subfield>
          </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.components == ['032', '031-039:02', '1--09', '2--93']
Exemplo n.º 6
0
    def testExtraSubfields(self):
        element = Element('''
              <mx:datafield tag="153" ind2=" " ind1=" " xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:subfield code="a">332.0240081</mx:subfield>
                <mx:subfield code="c">332.0240088</mx:subfield>
                <mx:subfield code="e">332.024001</mx:subfield>
                <mx:subfield code="f">332.024009</mx:subfield>
                <mx:subfield code="j">Miscellaneous specific kinds of persons</mx:subfield>
                <mx:subfield code="i">[formerly</mx:subfield>
                <mx:subfield code="x">332.02404</mx:subfield>
                <mx:subfield code="c">332.0249</mx:subfield>
                <mx:subfield code="i">]</mx:subfield>
                <mx:subfield code="9">ess=en</mx:subfield>
                <mx:subfield code="9">ess=eh</mx:subfield>
                <mx:subfield code="9">ess=nrl</mx:subfield>
              </mx:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table is None
        assert is_top_concept is False
        assert notation == '332.0240081-332.0240088'
        assert parent_notation == '332.024001-332.024009'
        assert caption == 'Miscellaneous specific kinds of persons'
Exemplo n.º 7
0
    def testAddTableNumber(self):
        rec = ClassificationRecord('''
            <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:leader>00000nw  a2200000n  4500</mx:leader>
                <mx:controlfield tag="008">100414baabaaaa</mx:controlfield>
                <mx:datafield tag="084" ind2=" " ind1="0">
                    <mx:subfield code="a">ddc</mx:subfield>
                    <mx:subfield code="c">23no</mx:subfield>
                </mx:datafield>
                <mx:datafield tag="153" ind2=" " ind1=" ">
                    <mx:subfield code="a">811</mx:subfield>
                    <mx:subfield code="c">818</mx:subfield>
                    <mx:subfield code="y">2</mx:subfield>
                    <mx:subfield code="a">4</mx:subfield>
                    <mx:subfield code="e">811</mx:subfield>
                    <mx:subfield code="f">818</mx:subfield>
                    <mx:subfield code="j">1867-1899 i Canada</mx:subfield>
                    <mx:subfield code="9">ess=reb</mx:subfield>
                    <mx:subfield code="9">ess=rhb</mx:subfield>
                </mx:datafield>
            </mx:record>
        ''', options=self.options)

        assert rec.record_type == Constants.TABLE_RECORD
        assert rec.number_type == Constants.SINGLE_NUMBER
        assert rec.display is True
        assert rec.synthesized is False
        assert rec.notation == '811-818:2;4'
        assert len(rec.relations) == 1
        assert rec.relations[0]['uri'] == 'http://dewey.info/class/811-818/e23/'
        assert rec.relations[0]['relation'] == SKOS.broader
Exemplo n.º 8
0
    def testSimpleNumber(self):
        rec = ClassificationRecord('''
            <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
              <mx:leader>00000nw  a2200000n  4500</mx:leader>
              <mx:controlfield tag="008">091203aaaaaaaa</mx:controlfield>
              <mx:datafield tag="084" ind2=" " ind1="0">
                <mx:subfield code="a">ddc</mx:subfield>
                <mx:subfield code="c">23no</mx:subfield>
                <mx:subfield code="e">nob</mx:subfield>
              </mx:datafield>
              <mx:datafield tag="153" ind2=" " ind1=" ">
                <mx:subfield code="a">152</mx:subfield>
                <mx:subfield code="e">152</mx:subfield>
                <mx:subfield code="f">158</mx:subfield>
                <mx:subfield code="j">Sansing, bevegelse, emosjoner, fysiologiske drifter</mx:subfield>
                <mx:subfield code="9">ess=en</mx:subfield>
                <mx:subfield code="9">ess=eh</mx:subfield>
              </mx:datafield>
            </mx:record>
        ''', options=self.options)

        assert rec.record_type == Constants.SCHEDULE_RECORD
        assert rec.number_type == Constants.SINGLE_NUMBER
        assert rec.display is True
        assert rec.synthesized is False
Exemplo n.º 9
0
    def testSynthesizedNumberComponents1(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
          <mx:leader>00000nw  a2200000n  4500</mx:leader>
          <mx:controlfield tag="001">ocd00132963</mx:controlfield>
          <mx:controlfield tag="008">100204aaaaaabb</mx:controlfield>
          <mx:datafield tag="084" ind2=" " ind1="0">
            <mx:subfield code="a">ddc</mx:subfield>
            <mx:subfield code="c">23no</mx:subfield>
            <mx:subfield code="e">nob</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="153" ind2=" " ind1=" ">
            <mx:subfield code="a">306.6804</mx:subfield>
            <mx:subfield code="e">306.63</mx:subfield>
            <mx:subfield code="f">306.69</mx:subfield>
            <mx:subfield code="9">ess=ien</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="765" ind2=" " ind1="0">
              <mx:subfield code="b">306.6</mx:subfield>
              <mx:subfield code="a">306.63</mx:subfield>
              <mx:subfield code="c">306.69</mx:subfield>
              <mx:subfield code="r">2</mx:subfield>
              <mx:subfield code="s">804</mx:subfield>
              <mx:subfield code="u">306.6804</mx:subfield>
              <mx:subfield code="9">ess=hn</mx:subfield>
            </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.components == ['306.6', '280.4']
Exemplo n.º 10
0
    def testStandardSubdivisionInfo(self):
        element = Element('''
            <mx:datafield tag="153" ind2=" " ind1=" " xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:subfield code="a">973</mx:subfield>
                <mx:subfield code="9">ess=si1</mx:subfield>
            </mx:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table is None
        assert notation == '973'
        assert caption is None
Exemplo n.º 11
0
    def testSynthesizedRecordWithIndexTerms(self):
        rec = ClassificationRecord('''
          <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
            <mx:leader>00000nw  a2200000n  4500</mx:leader>
            <mx:controlfield tag="008">091203aaaaaabb</mx:controlfield>
            <mx:datafield tag="084" ind2=" " ind1="0">
              <mx:subfield code="a">ddc</mx:subfield>
              <mx:subfield code="c">23no</mx:subfield>
              <mx:subfield code="e">nob</mx:subfield>
            </mx:datafield>
            <mx:datafield tag="153" ind2=" " ind1=" ">
              <mx:subfield code="a">006.686</mx:subfield>
              <mx:subfield code="e">006.68</mx:subfield>
              <mx:subfield code="9">ess=ien</mx:subfield>
            </mx:datafield>
            <mx:datafield tag="730" ind2="7" ind1=" ">
              <mx:subfield code="a">CorelDRAW</mx:subfield>
              <mx:subfield code="0">(OCoLC-D)99928acf-5fcb-4b49-b12c-9d4bdcb369b1</mx:subfield>
              <mx:subfield code="2">ddcri</mx:subfield>
              <mx:subfield code="9">ps=EO</mx:subfield>
            </mx:datafield>
            <mx:datafield tag="750" ind2="7" ind1=" ">
              <mx:subfield code="a">CorelDRAW!</mx:subfield>
              <mx:subfield code="0">(OCoLC-D)73e62e00-d820-48bb-b5a6-d5f4ceab2d12</mx:subfield>
              <mx:subfield code="2">ddcri</mx:subfield>
              <mx:subfield code="9">ps=EO</mx:subfield>
            </mx:datafield>
            <mx:datafield tag="750" ind2="7" ind1=" ">
              <mx:subfield code="a">Personlige datamaskiner</mx:subfield>
              <mx:subfield code="x">grafikkprogrammer</mx:subfield>
              <mx:subfield code="0">(OCoLC-D)1226b03f-c205-420e-ae21-34d41be81715</mx:subfield>
              <mx:subfield code="2">ddcri</mx:subfield>
              <mx:subfield code="9">ps=PE</mx:subfield>
              <mx:subfield code="9">ess=isCaption</mx:subfield>
            </mx:datafield>
          </mx:record>
        ''', options=self.options)

        assert rec.record_type == Constants.SCHEDULE_RECORD
        assert rec.number_type == Constants.SINGLE_NUMBER
        assert rec.display is True
        assert rec.synthesized is True
        assert rec.prefLabel is None
        assert rec.altLabel == [
            {'term': 'Personlige datamaskiner--grafikkprogrammer'},
            {'term': 'CorelDRAW'},
            {'term': 'CorelDRAW!'},
        ]
Exemplo n.º 12
0
    def testSynthesizedNumber(self):
        element = Element('''
              <mx:datafield tag="153" ind2=" " ind1=" " xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:subfield code="a">001.4092</mx:subfield>
                <mx:subfield code="e">001.4</mx:subfield>
                <mx:subfield code="9">ess=ien</mx:subfield>
              </mx:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table is None
        assert is_top_concept is False
        assert notation == '001.4092'
        assert parent_notation == '001.4'
        assert caption is None
Exemplo n.º 13
0
    def testIndexTerms(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
          <mx:leader>00000nw  a2200000n  4500</mx:leader>
          <mx:controlfield tag="001">ocd00146759</mx:controlfield>
          <mx:controlfield tag="008">100204aaaaaaaa</mx:controlfield>
          <mx:datafield tag="084" ind2=" " ind1="0">
            <mx:subfield code="a">ddc</mx:subfield>
            <mx:subfield code="c">23no</mx:subfield>
            <mx:subfield code="e">nob</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="153" ind2=" " ind1=" ">
            <mx:subfield code="a">543.17</mx:subfield>
            <mx:subfield code="e">543.1</mx:subfield>
            <mx:subfield code="j">Analytisk organisk kjemi</mx:subfield>
            <mx:subfield code="9">ess=en</mx:subfield>
            <mx:subfield code="9">ess=eh</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="750" ind2="7" ind1=" ">
            <mx:subfield code="a">Analytisk kjemi</mx:subfield>
            <mx:subfield code="x">organisk kjemi</mx:subfield>
            <mx:subfield code="0">(OCoLC-D)8c2057ce-4544-4593-9699-1008a7dcd4ef</mx:subfield>
            <mx:subfield code="2">ddcri</mx:subfield>
            <mx:subfield code="9">ps=PE</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="750" ind2="7" ind1=" ">
            <mx:subfield code="a">Kjemisk analyse</mx:subfield>
            <mx:subfield code="x">organisk kjemi</mx:subfield>
            <mx:subfield code="0">(OCoLC-D)934d9916-e069-4351-994f-44b4c02f2f4d</mx:subfield>
            <mx:subfield code="2">ddcri</mx:subfield>
            <mx:subfield code="9">ps=PE</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="750" ind2="7" ind1=" ">
            <mx:subfield code="a">Organisk kjemi</mx:subfield>
            <mx:subfield code="x">analytisk kjemi</mx:subfield>
            <mx:subfield code="0">(OCoLC-D)9d92b5a2-7f96-4db7-a212-19c40edf7a93</mx:subfield>
            <mx:subfield code="2">ddcri</mx:subfield>
            <mx:subfield code="9">ps=PE</mx:subfield>
          </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.altLabel == [
            {'term': 'Analytisk kjemi--organisk kjemi'},
            {'term': 'Kjemisk analyse--organisk kjemi'},
            {'term': 'Organisk kjemi--analytisk kjemi'}]
Exemplo n.º 14
0
    def testSimpleClass(self):
        element = Element('''
            <marc:datafield tag="153" ind1=" " ind2=" " xmlns:marc="http://www.loc.gov/MARC21/slim">
              <marc:subfield code="a">003.5</marc:subfield>
              <marc:subfield code="e">003</marc:subfield>
              <marc:subfield code="h">Generalities</marc:subfield>
              <marc:subfield code="h">Systems</marc:subfield>
              <marc:subfield code="j">Theory of communication and control</marc:subfield>
            </marc:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert notation == '003.5'
        assert parent_notation == '003'
        assert is_top_concept is False
        assert caption == 'Theory of communication and control'
Exemplo n.º 15
0
    def testSynthesizedNumberComponents2(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
          <mx:leader>00000nw  a2200000n  4500</mx:leader>
          <mx:controlfield tag="001">ocd00123528</mx:controlfield>
          <mx:controlfield tag="008">091203aaaaaabb</mx:controlfield>
          <mx:datafield tag="084" ind2=" " ind1="0">
            <mx:subfield code="a">ddc</mx:subfield>
            <mx:subfield code="c">23no</mx:subfield>
            <mx:subfield code="e">nob</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="153" ind2=" " ind1=" ">
            <mx:subfield code="a">299.3113</mx:subfield>
            <mx:subfield code="e">299.31</mx:subfield>
            <mx:subfield code="9">ess=ien</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="765" ind2=" " ind1="0">
              <mx:subfield code="b">299.31</mx:subfield>
              <mx:subfield code="a">299.31</mx:subfield>
              <mx:subfield code="a">290</mx:subfield>
              <mx:subfield code="w">290</mx:subfield>
              <mx:subfield code="y">1</mx:subfield>
              <mx:subfield code="a">1</mx:subfield>
              <mx:subfield code="c">9</mx:subfield>
              <mx:subfield code="r">20</mx:subfield>
              <mx:subfield code="s">13</mx:subfield>
              <mx:subfield code="u">299.3113</mx:subfield>
            </mx:datafield>
            <mx:datafield tag="765" ind2=" " ind1="0">
              <mx:subfield code="b">299</mx:subfield>
              <mx:subfield code="a">299.1</mx:subfield>
              <mx:subfield code="c">299.4</mx:subfield>
              <mx:subfield code="z">5</mx:subfield>
              <mx:subfield code="r">9</mx:subfield>
              <mx:subfield code="s">31</mx:subfield>
              <mx:subfield code="u">299.31</mx:subfield>
            </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.components == ['299', '5--931', '201.3']
Exemplo n.º 16
0
    def testTableEntryOldStyle(self):
        element = Element('''
            <marc:datafield tag="153" ind1=" " ind2=" " xmlns:marc="http://www.loc.gov/MARC21/slim">
                <marc:subfield code="z">6</marc:subfield>
                <marc:subfield code="a">9839</marc:subfield>
                <marc:subfield code="h">Languages</marc:subfield>
                <marc:subfield code="h">Other languages</marc:subfield>
                <marc:subfield code="h">South American native languages</marc:subfield>
                <marc:subfield code="h">Quechuan (Kechuan), Aymaran, Tucanoan, Tupí, Arawakan languages</marc:subfield>
                <marc:subfield code="j">Arawakan languages</marc:subfield>
            </marc:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table == '6'
        assert notation == '6--9839'
        assert is_top_concept is False
        assert parent_notation is None
        assert caption == u'Arawakan languages'
Exemplo n.º 17
0
    def testAddTableEntry(self):
        element = Element('''
            <mx:datafield tag="153" ind2=" " ind1=" " xmlns:mx="http://www.loc.gov/MARC21/slim">
                <mx:subfield code="a">820.1</mx:subfield>
                <mx:subfield code="c">828</mx:subfield>
                <mx:subfield code="y">4</mx:subfield>
                <mx:subfield code="a">1</mx:subfield>
                <mx:subfield code="e">820</mx:subfield>
                <mx:subfield code="j">Early period to 1858</mx:subfield>
                <mx:subfield code="9">ess=reb</mx:subfield>
                <mx:subfield code="9">ess=rhb</mx:subfield>
            </mx:datafield>
        ''')

        table, notation, is_top_concept, parent_notation, caption = ClassificationRecord.parse_153(
            element)

        assert table is None
        assert notation == '820.1-828:4;1'
        assert is_top_concept is False
        assert parent_notation == '820'
        assert caption == u'Early period to 1858'
Exemplo n.º 18
0
    def testSynthesizedScheduleRecord(self):
        rec = ClassificationRecord('''
        <mx:record xmlns:mx="http://www.loc.gov/MARC21/slim">
          <mx:leader>00000nw  a2200000n  4500</mx:leader>
          <mx:controlfield tag="008">091203aaaaaabb</mx:controlfield>
          <mx:datafield tag="084" ind2=" " ind1="0">
            <mx:subfield code="a">ddc</mx:subfield>
            <mx:subfield code="c">23no</mx:subfield>
            <mx:subfield code="e">nob</mx:subfield>
          </mx:datafield>
          <mx:datafield tag="153" ind2=" " ind1=" ">
            <mx:subfield code="a">025.1712</mx:subfield>
            <mx:subfield code="e">025.17</mx:subfield>
            <mx:subfield code="9">ess=ien</mx:subfield>
          </mx:datafield>
        </mx:record>
        ''', options=self.options)

        assert rec.record_type == Constants.SCHEDULE_RECORD
        assert rec.number_type == Constants.SINGLE_NUMBER
        assert rec.display is True
        assert rec.synthesized is True