diff --git a/city_scrapers/spiders/cuya_audit.py b/city_scrapers/spiders/cuya_audit.py index 143afe8..ba672ac 100644 --- a/city_scrapers/spiders/cuya_audit.py +++ b/city_scrapers/spiders/cuya_audit.py @@ -1,27 +1,13 @@ -import re - from city_scrapers_core.constants import ADVISORY_COMMITTEE from city_scrapers_core.spiders import CityScrapersSpider -from city_scrapers.mixins import CuyaCountyMixin +from city_scrapers.mixins import CuyaCountyMixin2 -class CuyaAuditSpider(CuyaCountyMixin, CityScrapersSpider): +class CuyaAuditSpider(CuyaCountyMixin2, CityScrapersSpider): name = "cuya_audit" agency = "Cuyahoga County Audit Committee" - start_urls = ["http://bc.cuyahogacounty.us/en-US/Audit-Committee.aspx"] + start_urls = [ + "https://cuyahogacounty.gov/boards-and-commissions/board-details/external/audit-committee" # noqa + ] classification = ADVISORY_COMMITTEE - location = { - "name": "County Headquarters, 4-407 Conference Room B", - "address": "2079 East 9th St Cleveland, OH 44115", - } - - def _parse_location(self, response): - detail_strs = response.css("blockquote dd::text").extract() - loc_str = None - for detail_str in detail_strs: - if re.search(r"\d{3}", detail_str): - loc_str = re.sub(r"\s+", " ", detail_str).strip() - if not loc_str or "2079" in loc_str: - return self.location - return {"name": "", "address": loc_str} diff --git a/tests/files/cuya_audit.html b/tests/files/cuya_audit.html index 5ad1d79..8eac8b9 100644 --- a/tests/files/cuya_audit.html +++ b/tests/files/cuya_audit.html @@ -1,368 +1,731 @@ - - - - Audit Committee - Cuyahoga County Boards & Commissions - - - - - - - - - - -
-
- - - -
+ + + + + token: "G98XI9WyVuNOTjDxOORC8g", + statistics: { - - - - - - - - -
+ enabled: true, + + documentTracking: { + + enabled: true, + + documentCls: "monsido_download", + + documentIgnoreCls: "monsido_ignore_download", + + documentExt: ["pdf","doc","ppt","docx","pptx"], + + }, + + }, + + heatmap: { + + enabled: true, + + }, + + }; - - -
- -
- + +
+ +
+
+
+ +
+
+
+
+
+ + +
+

+ Audit Committee +

+ +
+ + + +

Contact Information:

+

216-443-7215

- -Home > External Boards > Audit Committee +

Description of Board and Responsibilities:

+

The Cuyahoga County Audit Committee is established pursuant to Article XI, Section 11.01 of the Cuyahoga County Charter. This body provides internal auditing to assist the County Executive, Fiscal Officer, the County Council and other county officers and departments funded in whole or in part by County funds. The goal of the Audit Committee is to provide efficient and effective services to County residents. The Audit Committee provides direction and guidance to the County’s Department of Internal Auditing, including establishing and amending relevant rules and operations. The Audit Committee members will participate in the hiring processes of certain personnel. The County Audit Committee meets quarterly and oversees internal and external audits.

+

Application:

+ + Apply Now + + +

Qualifications:

+

Pursuant to provisions of the County Charter, the selection must be a resident of Cuyahoga County. Experience in auditing, accounting or other relevant fields is essential to this position. The successful applicant will have appropriate career and educational background to fill the position’s requirements. Management skills are preferred but not required. The position serves without compensation.

+ +

Enabling Legislation:

+ -

-

-

-

Audit Committee

-
- -CONTACT INFORMATION:
-Michelle Pomerantz
-2079 E. 9th St, Cleveland, Ohio 44115 -
-216-263-4605 
-mpomerantz@cuyahogacounty.us -
-
-
-WEBSITE:
-N/A
-
-
- -DESCRIPTION OF BOARD AND RESPONSIBILITIES:
-The Cuyahoga County Audit Committee is established pursuant to Article XI, Section 11.01 of the Cuyahoga County Charter. This body provides internal auditing to assist the County Executive, Fiscal Officer, the County Council and other county officers and departments funded in whole or in part by County funds. The goal of the Audit Committee is to provide efficient and effective services to County residents. The Audit Committee provides direction and guidance to the County’s Department of Internal Auditing, including establishing and amending relevant rules and operations. The Audit Committee members will participate in the hiring processes of certain personnel. The County Audit Committee meets quarterly and oversees internal and external audits.
-
-
- -QUALIFICATIONS:
-Pursuant to provisions of the County Charter, the selection must be a resident of Cuyahoga County. Experience in auditing, accounting or other relevant fields is essential to this position. The successful applicant will have appropriate career and educational background to fill the position’s requirements. Management skills are preferred but not required. The position serves without compensation.
-
-
-MEMBERSHIP:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name Term EndsAppointed By/Representation
Michael Abouserhal12/31/2020County Executive
-
Yvette Ittu12/31/2021County Executive
Keith J. Libman12/31/2022County Executive
Gary Shamis12/31/2019County Executive
Dan BradyN/ACouncil President
Armond Budish (Non-voting)N/ACounty Executive
Dennis Kennedy (Non-voting)N/AFiscal Officer
-
-
-MEETING SCHEDULE/AGENDAS:
-Meeting schedule and agendas below.
-
-
- -BYLAWS:
-View rules
-
-
- -ENABLING LEGISLATION:
- -
-
-OTHER USEFUL LINKS:
- -
-LINK TO APPLICATION:
-Apply Now -
-
-
-MEETING SCHEDULE: -
+ + + + +

Other Useful Links:

+ +
+ + + +

Membership:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name Term EndsAppointed By/Representation
+ + + + + + Dec 31, 2023 + + + + County Executive + +
+ + + + + + N/A + + + + Fiscal Officer + +
+ + + + + + N/A + + + + County Executive + +
+ + + + + + N/A + + + + Council President + +
+ + + + + + Dec 31, 2026 + + + + County Executive + +
+ + + + + + Dec 31, 2025 + + + + County Executive + +
+ + + + + + Dec 31, 2024 + + + + County Executive + +
+



+
+ + + + +
+

MEETING SCHEDULE:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateTitleFiles
12/14/2023Audit Committee - 12/14/23 + +
9/07/2023Audit Committee - 09/07/23 + +
7/06/2023Audit Committee - 07/06/23 + +
3/23/2023Audit Committee - 03/23/23 + +
+
+
+

View By Year

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Years
+ 2023 + +
+ 2022 + +
+ 2021 + +
+ 2020 + +
+ 2019 + +
+ 2018 + +
+ 2017 + +
+ 2016 + +
+ 2015 + +
+ 2014 + +
+ 2013 + +
+ 2012 + +
+
+ +
- +
+
+
-
-
+ + + +
+ + + + + + + + +
\ No newline at end of file diff --git a/tests/files/cuya_audit_detail.html b/tests/files/cuya_audit_detail.html index 4ef3dd0..8a9ac5f 100644 --- a/tests/files/cuya_audit_detail.html +++ b/tests/files/cuya_audit_detail.html @@ -1,254 +1,402 @@ + + Audit Committee - 12/14/23 + + + + }, - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - -
- + + +
+ +
+
+
+
-

- -

+
+

Event Details


+
+
+
+

+ Audit Committee - 12/14/23 +

+
+
+
+
+

Date and time:

+

+ + +December 14, 2023   9:30 AM - 12:00 PM

+
+
+
+
+

Location

+

+ 2079 E. 9th Street, 4th Floor, 4-407 Conference Room B

+
+
+
+ + + +
+
+

Add to:

+ +
+
+
+
+
+
+
+
+
-
-
+ + + +
+ + + + + + + + +
\ No newline at end of file diff --git a/tests/test_cuya_audit.py b/tests/test_cuya_audit.py index e658af1..d788afa 100644 --- a/tests/test_cuya_audit.py +++ b/tests/test_cuya_audit.py @@ -1,7 +1,6 @@ from datetime import datetime from os.path import dirname, join -import pytest # noqa from city_scrapers_core.constants import ADVISORY_COMMITTEE, PASSED from city_scrapers_core.utils import file_response from freezegun import freeze_time @@ -10,15 +9,15 @@ test_response = file_response( join(dirname(__file__), "files", "cuya_audit.html"), - url="http://bc.cuyahogacounty.us/en-US/Audit-Committee.aspx", + url="https://cuyahogacounty.gov/boards-and-commissions/board-details/external/audit-committee", # noqa ) test_detail_response = file_response( join(dirname(__file__), "files", "cuya_audit_detail.html"), - url="http://bc.cuyahogacounty.us/en-US/AuditCommitteeMtg-090519.aspx", + url="https://cuyahogacounty.gov/boards-and-commissions/bc-event-detail//2023/12/14/boards-and-commissions/audit-committee-121423", # noqa ) spider = CuyaAuditSpider() -freezer = freeze_time("2019-09-19") +freezer = freeze_time("2024-01-25") freezer.start() parsed_items = [item for item in spider.parse(test_response)] @@ -28,11 +27,11 @@ def test_count(): - assert len(parsed_items) == 5 + assert len(parsed_items) == 4 def test_title(): - assert parsed_item["title"] == "Audit Committee" + assert parsed_item["title"] == "Audit Committee - 12/14/23" def test_description(): @@ -40,11 +39,11 @@ def test_description(): def test_start(): - assert parsed_item["start"] == datetime(2019, 9, 5, 9, 0) + assert parsed_item["start"] == datetime(2023, 12, 14, 9, 30) def test_end(): - assert parsed_item["end"] == datetime(2019, 9, 5, 23, 30) + assert parsed_item["end"] == datetime(2023, 12, 14, 12, 0) def test_time_notes(): @@ -52,7 +51,7 @@ def test_time_notes(): def test_id(): - assert parsed_item["id"] == "cuya_audit/201909050900/x/audit_committee" + assert parsed_item["id"] == "cuya_audit/202312140930/x/audit_committee_12_14_23" def test_status(): @@ -60,20 +59,23 @@ def test_status(): def test_location(): - assert parsed_item["location"] == spider.location + assert parsed_item["location"] == { + "name": "", + "address": "2079 E. 9th Street, 4th Floor, 4-407 Conference Room B", + } def test_source(): assert ( parsed_item["source"] - == "http://bc.cuyahogacounty.us/en-US/AuditCommitteeMtg-090519.aspx" + == "https://cuyahogacounty.gov/boards-and-commissions/bc-event-detail//2023/12/14/boards-and-commissions/audit-committee-121423" # noqa ) def test_links(): assert parsed_item["links"] == [ { - "href": "http://bc.cuyahogacounty.us/ViewFile.aspx?file=9RBPLk%2fewj3DObNVTeTkjQ%3d%3d", # noqa + "href": "https://cuyahogacms.blob.core.windows.net/home/docs/default-source/boards-and-commissions/external/audit/2023/121423-acagenda.pdf?sfvrsn=76224a31_1", # noqa "title": "Agenda", } ]