diff --git a/city_scrapers/spiders/oma_examining.py b/city_scrapers/spiders/oma_examining.py deleted file mode 100644 index 06ef963..0000000 --- a/city_scrapers/spiders/oma_examining.py +++ /dev/null @@ -1,66 +0,0 @@ -import dateutil.parser -from city_scrapers_core.constants import NOT_CLASSIFIED -from city_scrapers_core.items import Meeting -from city_scrapers_core.spiders import CityScrapersSpider - - -class OmahaExaminingBoardMixin: - """Base spider for scraping tables on Omaha examining boards""" - - timezone = "America/Chicago" - BASE_URL = "https://planning.cityofomaha.org" - - def parse(self, response): - table = response.css("table.tabclr") - - for row in table.xpath(".//tr")[2:]: - try: - _, _, meeting = row.xpath("./td") - except ValueError: - continue - - date = meeting.xpath("string()").get().strip() - - # look for cancelled meetings, irregularly specified - if "CANCELED" in date or "CANCELLED" in date or "NO " in date: - continue - - meeting_link = meeting.xpath(".//a/@href").get() - - try: - start = dateutil.parser.parse(f"{date} {self.time}".replace("*", "")) - except Exception: - print("Could not parse date: ", date, self.time) - continue - - links = [] - if meeting_link: - links.append({"href": self.BASE_URL + meeting_link, "title": "Minutes"}) - - meeting = Meeting( - title=date, - description="", - classification=NOT_CLASSIFIED, - start=start, - end=None, - all_day=False, - time_notes="", - location={"address": self.address, "name": ""}, - links=links, - source=response.url, - ) - - meeting["status"] = self._get_status(meeting) - meeting["id"] = self._get_id(meeting) - - yield meeting - - -class OmahaPlanningExaminersPipefitters(OmahaExaminingBoardMixin, CityScrapersSpider): - name = "oma_planning_exam_pipefitters" - agency = "Omaha Planning Department: Board of Examiners (For Engineers)" - start_urls = [ - "https://planning.cityofomaha.org/boards/steamfitters-examining-board" # noqa - ] - time = "1pm" - address = "11th Floor - Central Conference Room; Omaha-Douglas Civic Center, 1819 Farnam Street" # noqa diff --git a/tests/files/oma_planning_exam_pipefitters.html b/tests/files/oma_planning_exam_pipefitters.html new file mode 100644 index 0000000..e53d442 --- /dev/null +++ b/tests/files/oma_planning_exam_pipefitters.html @@ -0,0 +1,543 @@ + + + + + + + + + + + + + + Board of Examiners (For Engineers) - City of Omaha Planning Department + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+ +
+ + + +
+ + + +
+ +
+ + + + + +
+ + +
Text Size   - | +
+ +
+ +
+ + + +
+ + + +
+ +
+ + + + + +
+

The Board of Engineer Examiners shall meet at least once each calendar month for the examination of applicants or their examination papers; however, such a meeting shall not be held unless there are two or more applications on file. The president of the board shall have the power to call special meetings of the board when deemed necessary. The secretary of the board shall be required to keep minutes of all meetings. The board shall not hold more than two sessions per month.

+

Click here for Hoisting and Portable Applications

+

Click here for Stationary Engineer Applications

+

Click here for Tank Installer Applications

+

Board Members:

+
    +
  • Shawn Dugan
  • +
  • Reginald Gillispie
  • +
  • Zachary Beister ( Chief Mechanical Inspector - Non-Voting)
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Stationary Engineers 2024 Meeting Schedule
12:00 p.m.* - Room 1210 - 12th Floor
Omaha-Douglas Civic Center, 1819 Farnam Street

+
+

Filing Deadline
(4:00 p.m. the Monday two weeks prior)

+
+

Meeting Dates
(Second Tuesday of each month at Noon.)

+
+

Disposition Agenda

+
Minutes +

 Testing Dates 
(9:00 a.m. on the first Thursday and Friday of each month)

+
December 19, 2023*January 9, 2024 
(cancelled)
  January 4-5, 2024
December 19, 2023 January 23, 2024January 23, 2024January 23, 2024February 1-2, 2024 
January 29, 2024February 13, 2024February 13, 2024February 13, 2024February 1-2, 2024
February 26, 2024March 12, 2024March 12, 2024March 12, 2024March 7-8, 2024
March 25, 2024April 9, 2024April 9, 2024April 9, 2024 April 4-5, 2024
April 29, 2024May 14, 2024May 14, 2024 May 14, 2024May 2-3, 2024
May 28, 2024June 11, 2024 June 11, 2024 June 6-7, 2024
July 1, 2024July 30, 2024  July 11-12, 2024
July 29, 2024August 13, 2024  August 1-2, 2024
August 26, 2024September 10, 2024  September 5-6 2024
September 23, 2024October 8, 2024  October 3-4, 2024
October 28, 2024November 12, 2024  November 7-8, 2024
November 25, 2024December 10, 2025  December 5-6, 2024
December 23, 2024*January 14, 2025  January 2-3, 2025
+

* Time subject to change as needed due to the number of exams to be graded

+

** Changed due to holiday

+

2023 Archives
2022 Archives
2021 Archives
2020 Archives
2019 Archives
2018 Archives
2017 Archives

+
+ + +
+
+ +
+ +
+ + + +
+ +
+ + + + + + + diff --git a/tests/files/steamfitters-examining-board.html b/tests/files/steamfitters-examining-board.html deleted file mode 100644 index 039997f..0000000 --- a/tests/files/steamfitters-examining-board.html +++ /dev/null @@ -1,593 +0,0 @@ - - - - - - - - - - - - - - Steamfitters Examining Board - City of Omaha Planning Department - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - -
-
- -
- - - -
- - - -
- -
- - - - - -
- - -
Text Size   - | +
- -
- -
-
- - - - -
-
- - -
- - -
-
-
- - - - - - - - -
- -
-
- -
-
-

PLANNING DEPARTMENT UPDATE

-

Beginning May 18, 2020, the Planning Department will return to normal business operations. Please see the home page of each Division for more specifics. This notice may continue to be updated based on new information. Please check back often. 

-

Board Meeting Guidelines

-

Regularly scheduled Board meetings have resumed and will be held in accordance with the Nebraska Open Meetings Act. Your safety and health are important so we will follow these guidelines to minimize attendance and contact with others at these meetings and provide a safe meeting space:

-
    -
  • All attendees will enter the building from the Farnam Street entrance
  • -
  • Attendees are encouraged to wear a mask
  • -
  • Check-in with Security. 
  • -
  • Room locations of the Board meetings may have changed. Please verify the location on the day of the meeting 
  • -
  • Maintain and respect the recommended six-foot social distance from others in attendance, both within the meeting room and those waiting outside the meeting room
  • -
  • Wait outside the meeting room while other cases are being heard. Staff will be there to direct you when it is time for your case to be heard
  • -
  • Minimize the number of people who might accompany you to the meeting. Efforts will be made to limit the total number of people in the room to less than 10 occupants (including board members)
  • -
  • Practice preventative measures before attending the meeting and while at the meeting (wash your hands or use sanitizer, cover your cough or sneeze with your shirt sleeve, refrain from shaking hands or other contacts with others who are in attendance, etc.)
  • -
-

Please continue to refer back to this webpage or the Planning Department’s main page https://planning.cityofomaha.org/ for any updates or changes to board meeting schedules. Lastly, please refer to any State or Federal guidelines for infection control on a regular basis.

-

Parking and Entry to Civic Center

-
    -
  • The parking garage at 19th and Harney Streets is available for parking but everyone is required to enter the Farnam Street entrance which is the only entrance accessible without an employee scan badge.
  • -
-
-

The Board of Steamfitter/Pipefitter Examiners shall be composed of three members. The board shall adopt rules and regulations governing the manner of conducting examinations and for carrying out its other duties. The duty of the board shall be to examine and certify master and journeyman steamfitters/pipefitters.

-

Board Members:

-
    -
  • Dan Christensen
  • -
  • Jason Eickmeier
  • -
  • Larry Whetstone
  • -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2022 Steamfitter/Pipefitter Examiners Board Regularly Scheduled Meetings
1:00 P.M.* - 11th Floor - Central Conference Room
Omaha-Douglas Civic Center, 1819 Farnam Street
Filing Deadline
(4:00 p.m. the Friday two weeks prior)
Meeting Dates
(First Friday of the month every other month)
Minutes
 
January 21, 2022February 4, 2022February 4, 2022
March 18, 2022April 1, 2022April 1, 2022
May 20, 2022June 3, 2022June 3, 2022
July 22, 2022August 5, 2022August 5, 2022
September 23, 2022October 7, 2022October 7, 2022
November 18, 2022December 2, 2022December 2, 2022
-

 *Time subject to change as needed due to the number of exams to be graded.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Exam Schedule 2022
Application Due DateApplications ReviewedTest Fee Payment DueTesting Dates
November 18, 2021December 3, 2021January 7, 2022January 28, 2022
January 20, 2022February 4, 2022March 4, 2022March 25, 2022
March 17, 2022April 1, 2022May 6, 2022May 27, 2022
May 19, 2022June 3, 2022July 1, 2022July 29, 2022
July 21, 2022August 5, 2022September 2, 2022September 30, 2022
September 15, 2022October 7, 2022November 4, 2022November 18, 2022
November 17, 2022December 2, 2022January 6, 2023January 27, 2023
-
-

2021 Meetings

-

2020 Meetings

-

2019 Meetings

-

2018 Meetings

-

2017 Meetings

- - -
-
-
- -
- - -
- -
- - - -
- -
- - - diff --git a/tests/test_oma_planning_exam_pipefitters.py b/tests/test_oma_planning_exam_pipefitters.py new file mode 100644 index 0000000..665983b --- /dev/null +++ b/tests/test_oma_planning_exam_pipefitters.py @@ -0,0 +1,82 @@ +from datetime import datetime +from os.path import dirname, join + +import pytest +from city_scrapers_core.constants import NOT_CLASSIFIED, PASSED +from city_scrapers_core.utils import file_response +from freezegun import freeze_time + +from city_scrapers.spiders.oma_planning_exam_pipefitters import ( + OmahaPlanningExaminersEngineersSpider, +) + +test_response = file_response( + join(dirname(__file__), "files", "oma_planning_exam_pipefitters.html"), + url="https://planning.cityofomaha.org/boards/board-of-examiners-for-engineers", +) +spider = OmahaPlanningExaminersEngineersSpider() + +freezer = freeze_time(datetime(2024, 7, 30, 11, 38)) +freezer.start() + +parsed_items = [item for item in spider.parse(test_response)] +parsed_item = parsed_items[0] +freezer.stop() + + +def test_title(): + assert parsed_item["title"] == "Steamfitters/Pipefitters Board meeting" + + +def test_description(): + assert parsed_item["description"] == "" + + +def test_start(): + assert parsed_item["start"] == datetime(2024, 1, 9, 13, 0) + + +def test_end(): + assert parsed_item["end"] is None + + +def test_time_notes(): + assert parsed_item["time_notes"] == "" + + +def test_id(): + assert ( + parsed_item["id"] + == "oma_planning_exam_pipefitters/202401091300/x/steamfitters_pipefitters_board_meeting" # noqa + ) + + +def test_status(): + assert parsed_item["status"] == PASSED + + +def test_location(): + assert parsed_item["location"] == { + "name": "", + "address": "11th Floor - Central Conference Room, Omaha-Douglas Civic Center, 1819 Farnam Street", # noqa + } + + +def test_source(): + assert ( + parsed_item["source"] + == "https://planning.cityofomaha.org/boards/board-of-examiners-for-engineers" + ) + + +def test_links(): + assert parsed_item["links"] == [] + + +def test_classification(): + assert parsed_item["classification"] == NOT_CLASSIFIED + + +@pytest.mark.parametrize("item", parsed_items) +def test_all_day(item): + assert item["all_day"] is False