示例#1
0
 def setUp(self):
     self.service_funnel = ServiceFunnel()
     html_string = """
         <article class="article " id="id-39334" data-tags="A,B,C"><h2>S1</h2></article>
         <article class="article " id="id-39335" data-tags="B,C,D,E"><h2>S2</h2></article>
     """
     self.service_funnel.scrape_html(html_string)
示例#2
0
    def test_scrape_html(self):
        html_text_class = HTMLText()
        text_input = html_text_class.get_string()

        service_funnel = ServiceFunnel()
        result = service_funnel.scrape_html(text_input)
        assert isinstance(result, dict)
        assert len(result) > 1
示例#3
0
    def test_handle_request(self, mock_response_class, mock_request_class):
        request = {
            "selected_tags": [{
                "name": "Kündigung"
            }, {
                "name": "Mobilfunkvertrag"
            }]
        }
        service_funnel = ServiceFunnel()
        service_funnel.handle_request(request)

        mock_request_class.return_value.get_request_type.assert_called_once()
        mock_response_class.return_value.get_response.assert_called_once()
示例#4
0
class TestServiceFunnelScrape(unittest.TestCase):
    def setUp(self):
        self.service_funnel = ServiceFunnel()
        html_string = """
            <article class="article " id="id-39334" data-tags="A,B,C"><h2>S1</h2></article>
            <article class="article " id="id-39335" data-tags="B,C,D,E"><h2>S2</h2></article>
        """
        self.service_funnel.scrape_html(html_string)

    def test_valid_tags_with_snippet(self):
        result = self.service_funnel.handle_request(
            {"selected_tags": [{"name": "A"}, {"name": "B"}, {"name": "C"}]}
        )
        self.assertEqual(result["status"]["code"], 0)
        self.assertEqual(result["status"]["msg"], "Valid tags with snippet")
        self.assertEqual(
            result["selected_tags"],
            [{"name": "A"}, {"name": "B"}, {"name": "C"}],
        )
        self.assertCountEqual(result["next_tags"], [])
        self.assertEqual(
            result["snippet"],
            '<article class="article" data-tags="A,B,C" id="id-39334"><h2>S1</h2></article>',
        )

    def test_valid_tags_without_snippet(self):
        result = self.service_funnel.handle_request(
            {"selected_tags": [{"name": "B"}]}
        )
        self.assertEqual(result["status"]["code"], 1)
        self.assertEqual(result["status"]["msg"], "Valid tags but no snippet")
        self.assertEqual(result["selected_tags"], [{"name": "B"}])
        self.assertCountEqual(
            result["next_tags"],
            [{"name": "A"}, {"name": "C"}, {"name": "D"}, {"name": "E"}],
        )
        self.assertEqual(result["snippet"], None)

    def test_invalid_tags(self):
        result = self.service_funnel.handle_request(
            {"selected_tags": [{"name": "A"}, {"name": "E"}]}
        )
        self.assertEqual(result["status"]["code"], 2)
        self.assertEqual(result["status"]["msg"], "Invalid tags")
        self.assertEqual(
            result["selected_tags"], [{"name": "A"}, {"name": "E"}]
        )
        self.assertCountEqual(result["next_tags"], [])
        self.assertEqual(result["snippet"], None)
class TestServiceFunnelScrape(unittest.TestCase):
    def setUp(self):
        self.service_funnel = ServiceFunnel()
        html_string = """
            <article class="article " id="id-39334" data-tags="A,X,Z"><h2>S1</h2></article>
            <article class="article " id="id-39334" data-tags="A,B,C"><h2>S2</h2></article>
            <article class="article " id="id-39334" data-tags="A,B,D"><h2>S3</h2></article>
            <article class="article " id="id-39334" data-tags="A,D,E"><h2>S4</h2></article>
        """
        self.service_funnel.scrape_html(html_string)

    def test_common_tags(self):
        result = self.service_funnel.handle_request({
            "selected_tags": [{
                "name": "A"
            }, {
                "name": "B"
            }, {
                "name": "C"
            }, {
                "name": "D"
            }, {
                "name": "E"
            }]
        })
        self.assertEqual(result["status"]["code"], 2)
        self.assertEqual(result["status"]["msg"], "Invalid tags")
        self.assertEqual(
            result["selected_tags"],
            [{
                "name": "A"
            }, {
                "name": "B"
            }, {
                "name": "C"
            }, {
                "name": "D"
            }, {
                "name": "E"
            }],
        )
        self.assertCountEqual(result["next_tags"], [])
        self.assertEqual(result["snippet"], None)

    def test_two_tag_match(self):
        result = self.service_funnel.handle_request(
            {"selected_tags": [{
                "name": "B"
            }, {
                "name": "D"
            }]})
        self.assertEqual(result["status"]["code"], 0)
        self.assertEqual(result["status"]["msg"], "Valid tags with snippet")
        self.assertEqual(result["selected_tags"], [{
            'name': 'B'
        }, {
            'name': 'D'
        }])
        self.assertCountEqual(result["next_tags"], [])
        self.assertEqual(
            result["snippet"],
            '<article class="article" data-tags="A,B,D" id="id-39334"><h2>S3</h2></article>'
        )

    def test_two_tag_match_2(self):
        result = self.service_funnel.handle_request(
            {"selected_tags": [{
                "name": "A"
            }, {
                "name": "B"
            }]})
        self.assertEqual(result["status"]["code"], 1)
        self.assertEqual(result["status"]["msg"], "Valid tags but no snippet")
        self.assertEqual(result["selected_tags"], [{
            'name': 'A'
        }, {
            'name': 'B'
        }])
        self.assertCountEqual(result["next_tags"], [
            {
                'name': 'C'
            },
            {
                'name': 'D'
            },
        ])
        self.assertEqual(result["snippet"], None)
示例#6
0
from main import ServiceFunnel

###---test html---###
html_string = """
            <article class="article " id="id-39334" data-tags="A,B,C"><h2>S1</h2></article>
            <article class="article " id="id-39335" data-tags="A,B,D,E"><h2>S2</h2></article>	
            <article class="article " id="id-39336" data-tags="X,C,D,L"><h2>S3</h2></article>
            <article class="article " id="id-39337" data-tags="J,A,B,Q"><h2>S4</h2></article>
            <article class="article " id="id-39338" data-tags="M,A,B,C,S"><h2>S5</h2></article>

        """
service_funnel = ServiceFunnel()
service_funnel.scrape_html(html_string)


def test_valid_tags_with_snippet():
	result = service_funnel.handle_request(
            {"selected_tags": [{"name": "A"}, {"name": "B"}, {"name": "C"}]}       
	return result												

def test_invalid_tags():
	result = service_funnel.handle_request(
            {"selected_tags": [{"name": "W"}, {"name": "T"}, {"name": "R"}]}	   
        )
	return result

def test_valid_tags_without_snippet():
	result = service_funnel.handle_request(
            {"selected_tags": [{"name": "A"}, {"name": "B"}]}					    
        )													
	return result