def test_bv_errors(self, patched_decimals):
        """
        Tests to see if errors right numher of errors are thrown
        """
        asset_concept = Mock()
        asset_concept.qname = dqc_us_0004._ASSETS_CONCEPT
        liabilities_concept = Mock()
        liabilities_concept.qname = dqc_us_0004._LIABILITIES_CONCEPT

        mock_context = Mock(instantDatetime=datetime(2013, 12, 22, 11, 30, 59))

        asset_fact = Mock(contextID='valid',
                          context=mock_context,
                          unitID='unit1',
                          isNil=False,
                          xValid=True,
                          xValue=1)
        liabilities_fact = Mock(contextID='valid',
                                context=mock_context,
                                unitID='unit1',
                                isNil=False,
                                xValid=True,
                                xValue=100)

        mock_name_concepts_dict = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: [liabilities_concept]
        }

        mock_facts_by_qname = {
            asset_concept.qname: [asset_fact],
            liabilities_concept.qname: [liabilities_fact]
        }

        model_xbrl = Mock(spec=arelle.ModelXbrl.ModelXbrl)
        model_xbrl.nameConcepts = mock_name_concepts_dict
        model_xbrl.factsByQname = mock_facts_by_qname

        error_count = 0
        for fact in dqc_us_0004._assets_eq_liability_equity(model_xbrl):
            asset, liability = fact
            error_count += 1
            self.assertEqual(asset, asset_fact)
            self.assertEqual(liability, liabilities_fact)

        self.assertEqual(error_count, 1)

        mock_name_concepts_dict_no_liability = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: []
        }
        model_xbrl.nameConcepts = mock_name_concepts_dict_no_liability

        error_count = 0
        for _ in dqc_us_0004._assets_eq_liability_equity(model_xbrl):
            error_count += 1
        self.assertEqual(error_count, 0)
    def test_bv_errors(self, patched_decimals):
        """
        Tests to see if errors right numher of errors are thrown
        """
        asset_concept = Mock()
        asset_concept.qname = dqc_us_0004._ASSETS_CONCEPT
        liabilities_concept = Mock()
        liabilities_concept.qname = dqc_us_0004._LIABILITIES_CONCEPT

        mock_context = Mock(instantDatetime=datetime(2013, 12, 22, 11, 30, 59))

        asset_fact = Mock(
            contextID='valid', context=mock_context, unitID='unit1',
            isNil=False, xValid=True, xValue=1
        )
        liabilities_fact = Mock(
            contextID='valid', context=mock_context, unitID='unit1',
            isNil=False, xValid=True, xValue=100
        )

        mock_name_concepts_dict = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: [liabilities_concept]
        }

        mock_facts_by_qname = {
            asset_concept.qname: [asset_fact],
            liabilities_concept.qname: [liabilities_fact]
        }

        model_xbrl = Mock(spec=arelle.ModelXbrl.ModelXbrl)
        model_xbrl.nameConcepts = mock_name_concepts_dict
        model_xbrl.factsByQname = mock_facts_by_qname

        error_count = 0
        for fact in dqc_us_0004._assets_eq_liability_equity(model_xbrl):
            asset, liability = fact
            error_count += 1
            self.assertEqual(asset, asset_fact)
            self.assertEqual(liability, liabilities_fact)

        self.assertEqual(error_count, 1)

        mock_name_concepts_dict_no_liability = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: []
        }
        model_xbrl.nameConcepts = mock_name_concepts_dict_no_liability

        error_count = 0
        for _ in dqc_us_0004._assets_eq_liability_equity(model_xbrl):
            error_count += 1
        self.assertEqual(error_count, 0)
Пример #3
0
    def test_bv_None_context(self):
        asset_concept = Mock()
        asset_concept.qname = dqc_us_0004._ASSETS_CONCEPT
        liabilities_concept = Mock()
        liabilities_concept.qname = dqc_us_0004._LIABILITIES_CONCEPT

        asset_fact = Mock(
            contextID='valid', context=None, unitID='unit1',
            isNil=False, xValid=True, xValue=1
        )
        liabilities_fact = Mock(
            contextID='valid', context=None, unitID='unit1',
            isNil=False, xValid=True, xValue=2
        )

        mock_name_concepts_dict = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: [liabilities_concept]
        }

        mock_facts_by_qname = {
            asset_concept.qname: [asset_fact],
            liabilities_concept.qname: [liabilities_fact]
        }

        modelXbrl = Mock()
        modelXbrl.nameConcepts = mock_name_concepts_dict
        modelXbrl.factsByQname = mock_facts_by_qname

        error_count = 0
        for _ in dqc_us_0004._assets_eq_liability_equity(modelXbrl):
            error_count += 1
        self.assertEqual(error_count, 0)
    def test_bv_no_errors_duration(self):
        """
        Tests to see if no errors are thrown without a duration on fact
        """
        asset_concept = Mock()
        asset_concept.qname = dqc_us_0004._ASSETS_CONCEPT
        liabilities_concept = Mock()
        liabilities_concept.qname = dqc_us_0004._LIABILITIES_CONCEPT

        mock_context = Mock(instantDatetime=None)

        asset_fact = Mock(contextID='valid',
                          context=mock_context,
                          unitID='unit1',
                          isNil=False,
                          xValid=True,
                          xValue=1)
        liabilities_fact = Mock(contextID='valid',
                                context=mock_context,
                                unitID='unit1',
                                isNil=False,
                                xValid=True,
                                xValue=2)

        mock_name_concepts_dict = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: [liabilities_concept]
        }

        mock_facts_by_qname = {
            asset_concept.qname: [asset_fact],
            liabilities_concept.qname: [liabilities_fact]
        }

        model_xbrl = Mock(spec=arelle.ModelXbrl.ModelXbrl)
        model_xbrl.nameConcepts = mock_name_concepts_dict
        model_xbrl.factsByQname = mock_facts_by_qname

        error_count = 0
        for _ in dqc_us_0004._assets_eq_liability_equity(model_xbrl):
            error_count += 1
        self.assertEqual(error_count, 0)
    def test_bv_no_errors_duration(self):
        """
        Tests to see if no errors are thrown without a duration on fact
        """
        asset_concept = Mock()
        asset_concept.qname = dqc_us_0004._ASSETS_CONCEPT
        liabilities_concept = Mock()
        liabilities_concept.qname = dqc_us_0004._LIABILITIES_CONCEPT

        mock_context = Mock(instantDatetime=None)

        asset_fact = Mock(
            contextID='valid', context=mock_context, unitID='unit1',
            isNil=False, xValid=True, xValue=1
        )
        liabilities_fact = Mock(
            contextID='valid', context=mock_context, unitID='unit1',
            isNil=False, xValid=True, xValue=2
        )

        mock_name_concepts_dict = {
            dqc_us_0004._ASSETS_CONCEPT: [asset_concept],
            dqc_us_0004._LIABILITIES_CONCEPT: [liabilities_concept]
        }

        mock_facts_by_qname = {
            asset_concept.qname: [asset_fact],
            liabilities_concept.qname: [liabilities_fact]
        }

        model_xbrl = Mock(spec=arelle.ModelXbrl.ModelXbrl)
        model_xbrl.nameConcepts = mock_name_concepts_dict
        model_xbrl.factsByQname = mock_facts_by_qname

        error_count = 0
        for _ in dqc_us_0004._assets_eq_liability_equity(model_xbrl):
            error_count += 1
        self.assertEqual(error_count, 0)